62 lines
2.0 KiB
C#
62 lines
2.0 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 APIInternalContactsManager : BaseManager
|
|
{
|
|
ContactManager _manager = new ContactManager(PrevuEFContext.PrevuEntity);
|
|
public APIClientCallBackManager _callBackManager = new APIClientCallBackManager();
|
|
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.CompanyContact)
|
|
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>();
|
|
if (contacts == null)
|
|
contacts = new List<APIContactModel>();
|
|
|
|
foreach (APIContactModel contact in contacts)
|
|
{
|
|
var c = _manager.GetContactByName(contact.FirstName,contact.LastName, EnVisage.Code.ContactType.CompanyContact );
|
|
if (c == null || c.Id == Guid.Empty)
|
|
{
|
|
c = _callBackManager.GetInternalContactInfoFromClient(contact.FirstName,contact.LastName);
|
|
|
|
var cd = _manager.Save(c);
|
|
results.Add(cd.Id);
|
|
}
|
|
else
|
|
results.Add(c.Id);
|
|
}
|
|
return results;
|
|
}
|
|
}
|
|
}
|