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 GetContacts(Guid ProjectId) { List results = new List(); 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 ValidateContacts(List contacts) { List results = new List(); 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; } } }