EnVisageOnline/Main/Source/PrevuWebAPI/Code/Managers/APIExternalContactsManager.cs

60 lines
1.9 KiB
C#

using EnVisage;
using EnVisage.Code.BLL;
using EnVisage.Models;
using PrevuWebAPI.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PrevuWebAPI.Code.Managers
{
public class APIExternalContactsManager : BaseManager
{
public APIClientCallBackManager _callBackManager = new APIClientCallBackManager();
ContactManager _manager = new ContactManager(PrevuEFContext.PrevuEntity);
public List<APIContactModel> GetContacts(Guid ProjectId)
{
List<APIContactModel> results = new List<APIContactModel>();
var list = _manager.GetContacts(ProjectId);
foreach(ContactModel m in list)
{
if (m.Type == EnVisage.Code.ContactType.ClientContact)
results.Add(GetAPIModel(m));
}
return results;
}
private APIContactModel GetAPIModel(ContactModel m)
{
var model = new APIContactModel()
{
FirstName = m.FirstName,
LastName = m.LastName
};
return model;
}
public List<Guid> ValidateContacts(List<APIContactModel> contacts)
{
List<Guid> results = new List<Guid>();
foreach (APIContactModel contact in contacts)
{
var c = _manager.GetContactByName(contact.FirstName, contact.LastName, EnVisage.Code.ContactType.ClientContact);
if (c == null || c.Id == Guid.Empty)
{
c = _callBackManager.GetExternalContactInfoFromClient(contact.FirstName, contact.LastName);
var cd = _manager.Save(c);
results.Add(cd.Id);
}
else
results.Add(c.Id);
}
return results;
}
}
}