public void Update(coreModel.Organization[] organizations) { var pkMap = new PrimaryKeyResolvingMap(); using (var repository = _repositoryFactory()) using (var changeTracker = GetChangeTracker(repository)) { foreach (var organization in organizations) { var sourceEntity = organization.ToDataModel(pkMap); var targetEntity = repository.GetOrganizationById(organization.Id); if (targetEntity == null) { throw new NullReferenceException("targetEntity"); } changeTracker.Attach(targetEntity); sourceEntity.Patch(targetEntity); } CommitChanges(repository); pkMap.ResolvePrimaryKeys(); } foreach (var organization in organizations) { _dynamicPropertyService.SaveDynamicPropertyValues(organization); } }
public void Update(coreModel.Contact[] contacts) { var pkMap = new PrimaryKeyResolvingMap(); using (var repository = _repositoryFactory()) using (var changeTracker = GetChangeTracker(repository)) { foreach (var contact in contacts) { var targetEntity = repository.GetContactById(contact.Id); if (targetEntity != null) { changeTracker.Attach(targetEntity); var sourceEntity = contact.ToDataModel(pkMap); sourceEntity.Patch(targetEntity); _dynamicPropertyService.SaveDynamicPropertyValues(contact); } } CommitChanges(repository); pkMap.ResolvePrimaryKeys(); } }
public coreModel.Contact Create(coreModel.Contact contact) { var entity = contact.ToFoundation(); coreModel.Contact retVal = null; using (var repository = _repositoryFactory()) { repository.Add(entity); CommitChanges(repository); } retVal = GetById(contact.Id); return retVal; }
public coreModel.SearchResult Search(coreModel.SearchCriteria criteria) { var retVal = new coreModel.SearchResult(); var taskList = new List<Task>(); taskList.Add(Task.Factory.StartNew(() => SearchOrganizations(criteria, retVal))); taskList.Add(Task.Factory.StartNew(() => SearchContacts(criteria, retVal))); Task.WaitAll(taskList.ToArray()); return retVal; }
public coreModel.Organization Create(coreModel.Organization organization) { var entity = organization.ToDataModel(); coreModel.Organization retVal = null; using (var repository = _repositoryFactory()) { repository.Add(entity); CommitChanges(repository); } retVal = GetById(entity.Id); return retVal; }
/// <summary> /// Converting to model type /// </summary> /// <param name="dbEntity"></param> /// <returns></returns> public static coreModel.Member ToCoreModel(this dataModel.Member dbEntity, coreModel.Member member) { if (dbEntity == null) throw new ArgumentNullException("dbEntity"); var memberType = member.MemberType; member.InjectFrom(dbEntity); member.MemberType = memberType; member.Addresses = dbEntity.Addresses.OrderBy(x=>x.Id).Select(x => x.ToCoreModel()).ToList(); member.Emails = dbEntity.Emails.OrderBy(x => x.Id).Select(x => x.Address).ToList(); member.Notes = dbEntity.Notes.OrderBy(x => x.Id).Select(x => x.ToCoreModel()).ToList(); member.Phones = dbEntity.Phones.OrderBy(x => x.Id).Select(x => x.Number).ToList(); return member; }
public coreModel.Organization Create(coreModel.Organization organization) { var entity = organization.ToDataModel(); using (var repository = _repositoryFactory()) { repository.Add(entity); CommitChanges(repository); } _dynamicPropertyService.SaveDynamicPropertyValues(organization); var retVal = GetById(entity.Id); return retVal; }
public coreModel.Contact Create(coreModel.Contact contact) { var entity = contact.ToDataModel(); using (var repository = _repositoryFactory()) { repository.Add(entity); CommitChanges(repository); } _dynamicPropertyService.SaveDynamicPropertyValues(contact); var retVal = GetById(entity.Id); return retVal; }
public coreModel.Contact Create(coreModel.Contact contact) { var pkMap = new PrimaryKeyResolvingMap(); var entity = contact.ToDataModel(pkMap); using (var repository = _repositoryFactory()) { repository.Add(entity); CommitChanges(repository); pkMap.ResolvePrimaryKeys(); } _dynamicPropertyService.SaveDynamicPropertyValues(contact); var retVal = GetById(entity.Id); return retVal; }
private void SearchOrganizations(coreModel.SearchCriteria criteria, coreModel.SearchResult result) { using (var repository = _repositoryFactory()) { var query = repository.Organizations; if (criteria.OrganizationId != null) { query = query.Where(x => x.MemberRelations.Any(y=>y.AncestorId == criteria.OrganizationId)); } else { query = query.Where(x => !x.MemberRelations.Any()); } result.Organizations = query.OrderByDescending(x => x.Name) .ToArray() .Select(x=>x.ToCoreModel()) .ToList(); } }
public void Update(coreModel.Organization[] organizations) { using (var repository = _repositoryFactory()) using (var changeTracker = base.GetChangeTracker(repository)) { foreach (var organization in organizations) { var sourceEntity = organization.ToDataModel(); var targetEntity = repository.GetOrganizationById(organization.Id); if (targetEntity == null) { throw new NullReferenceException("targetEntity"); } changeTracker.Attach(targetEntity); sourceEntity.Patch(targetEntity); } CommitChanges(repository); } }
public void Update(coreModel.Contact[] contacts) { using (var repository = _repositoryFactory()) using (var changeTracker = base.GetChangeTracker(repository)) { foreach (var contact in contacts) { var sourceEntity = contact.ToFoundation(); var targetEntity = repository.GetContactById(contact.Id); if (targetEntity == null) { throw new NullReferenceException("targetEntity"); } changeTracker.Attach(targetEntity); sourceEntity.Patch(targetEntity); } CommitChanges(repository); } }
private void SearchOrganizations(coreModel.SearchCriteria criteria, coreModel.SearchResult result) { using (var repository = _repositoryFactory()) { var query = repository.Organizations; if (criteria.OrganizationId != null) { query = query.Where(x => x.MemberRelations.Any(y => y.AncestorId == criteria.OrganizationId)); if (!String.IsNullOrEmpty(criteria.Keyword)) { query = query.Where(x => x.Name.Contains(criteria.Keyword)); } } else { if (!String.IsNullOrEmpty(criteria.Keyword)) { query = query.Where(x => x.Name.Contains(criteria.Keyword)); } else { query = query.Where(x => !x.MemberRelations.Any()); } } var sortInfos = criteria.SortInfos; if (sortInfos.IsNullOrEmpty()) { sortInfos = new[] { new SortInfo { SortColumn = "Name" } }; } //Try to replace sorting columns names TryTransformSortingInfoColumnNames(_organizationSortingAliases, sortInfos); query = query.OrderBySortInfos(sortInfos); result.Organizations = query.ToArray() .Select(x => x.ToCoreModel()) .ToList(); } }
public IHttpActionResult Search(coreModel.SearchCriteria criteria) { var result = _contactSearchService.Search(criteria); var retVal = new webModel.SearchResult(); var start = criteria.Skip; var count = criteria.Take; // all organizations var organizations = result.Organizations.Select(x => x.ToWebModel()); var contacts = result.Contacts.Select(x => x.ToWebModel()); retVal.TotalCount = organizations.Count() + result.TotalCount; retVal.Members.AddRange(organizations.Skip(start).Take(count)); count -= organizations.Count(); retVal.Members.AddRange(contacts.Take(count)); return Ok(retVal); }
private void SearchContacts(coreModel.SearchCriteria criteria, coreModel.SearchResult result) { using (var repository = _repositoryFactory()) { var query = repository.Members.OfType<foundationModel.Contact>(); if(criteria.OrganizationId != null) { query = query.Where(x => x.MemberRelations.Any(y => y.AncestorId == criteria.OrganizationId)); } else { query = query.Where(x => !x.MemberRelations.Any()); } result.TotalCount = query.Count(); result.Contacts = query.OrderBy(x => x.FullName) .Skip(criteria.Start) .Take(criteria.Count) .ToArray() .Select(x => x.ToCoreModel()) .ToList(); } }
private static void SetPropertyValue(dataModel.ContactPropertyValue retVal, coreModel.Property property) { switch (property.ValueType) { case coreModel.PropertyValueType.Boolean: retVal.BooleanValue = Convert.ToBoolean(property.Value); break; case coreModel.PropertyValueType.DateTime: retVal.DateTimeValue = Convert.ToDateTime(property.Value); break; case coreModel.PropertyValueType.Decimal: retVal.DecimalValue = Convert.ToDecimal(property.Value); break; case coreModel.PropertyValueType.Integer: retVal.IntegerValue = Convert.ToInt32(property.Value); break; case coreModel.PropertyValueType.LongText: retVal.LongTextValue = Convert.ToString(property.Value); break; case coreModel.PropertyValueType.ShortText: retVal.ShortTextValue = Convert.ToString(property.Value); break; } }
public void Update(coreModel.Contact[] contacts) { using (var repository = _repositoryFactory()) using (var changeTracker = GetChangeTracker(repository)) { foreach (var contact in contacts) { var sourceEntity = contact.ToDataModel(); var targetEntity = repository.GetContactById(contact.Id); if (targetEntity == null) { throw new NullReferenceException("targetEntity"); } changeTracker.Attach(targetEntity); sourceEntity.Patch(targetEntity); _dynamicPropertyService.SaveDynamicPropertyValues(contact); } CommitChanges(repository); } }
private void SearchContacts(coreModel.SearchCriteria criteria, coreModel.SearchResult result) { using (var repository = _repositoryFactory()) { var query = repository.Members.OfType<foundationModel.Contact>(); if (criteria.OrganizationId != null) { query = query.Where(x => x.MemberRelations.Any(y => y.AncestorId == criteria.OrganizationId)); if (!String.IsNullOrEmpty(criteria.Keyword)) { query = query.Where(x => x.FullName.Contains(criteria.Keyword)); } } else { if (!String.IsNullOrEmpty(criteria.Keyword)) { query = query.Where(x => x.FullName.Contains(criteria.Keyword) || x.Emails.Any(y => y.Address.Contains(criteria.Keyword))); } else { query = query.Where(x => !x.MemberRelations.Any()); } } result.TotalCount = query.Count(); var sortInfos = criteria.SortInfos; if (sortInfos.IsNullOrEmpty()) { sortInfos = new[] { new SortInfo { SortColumn = "FullName" } }; } //Try to replace sorting columns names TryTransformSortingInfoColumnNames(_contactSortingAliases, sortInfos); query = query.OrderBySortInfos(sortInfos); result.Contacts = query.Skip(criteria.Skip) .Take(criteria.Take) .ToArray() .Select(x => x.ToCoreModel()) .ToList(); } }
public coreModel.SearchResult Search(coreModel.SearchCriteria criteria) { coreModel.SearchResult retVal; using (var repository = _repositoryFactory()) { var query = repository.Members.OrderBy(x => x.CreatedDate).OfType<foundationModel.Contact>().Select(x => x.Id); retVal = new coreModel.SearchResult { TotalCount = query.Count(), Contacts = new List<coreModel.Contact>() }; foreach (var contactId in query.Skip(criteria.Start).Take(criteria.Count).ToArray()) { var contact = repository.GetContactById(contactId); if (contact != null) { retVal.Contacts.Add(contact.ToCoreModel()); } } } return retVal; }
public IHttpActionResult Search(coreModel.SearchCriteria criteria) { var result = _memberService.SearchMembers(criteria); return Ok(result); }
public IHttpActionResult UpdateMember(coreModel.Member member) { _memberService.CreateOrUpdate(new[] { member }); return StatusCode(HttpStatusCode.NoContent); }
public IHttpActionResult CreateContact(coreModel.Contact contact) { return CreateMember(contact); }
public IHttpActionResult CreateMember(coreModel.Member member) { _memberService.CreateOrUpdate(new [] { member }); var retVal = _memberService.GetByIds(new[] { member.Id }).FirstOrDefault(); return Ok(retVal); }
public IHttpActionResult CreateOrganization(coreModel.Organization organization) { return CreateMember(organization); }