internal IFacadeUpdateResult <ContactData> SaveContactContactMethod(object parentId, ContactContactMethodDto childDto) { ArgumentValidator.IsNotNull("parentId", parentId); ArgumentValidator.IsNotNull("childDto", childDto); FacadeUpdateResult <ContactData> result = new FacadeUpdateResult <ContactData>(); IContactService projectService = UnitOfWork.GetService <IContactService>(); var projectQuery = projectService.Retrieve(parentId); if (projectQuery.HasResult) { Contact parent = projectQuery.ToBo <Contact>(); ContactContactMethod child = RetrieveOrNewContactContactMethod(parent, childDto.Id); if (child != null) { child.ContactMethodTypeId = childDto.ContactMethodTypeId; child.ContactMethodValue = childDto.ContactMethodValue; var saveQuery = projectService.Save(parent); result.Merge(saveQuery); result.AttachResult(parent.RetrieveData <ContactData>()); } else { AddError(result.ValidationResult, "ContactContactMethodCannotBeFound"); } } return(result); }
internal IFacadeUpdateResult <ContactData> DeleteContactContactMethod(object parentId, object childId) { ArgumentValidator.IsNotNull("parentId", parentId); ArgumentValidator.IsNotNull("childId", childId); FacadeUpdateResult <ContactData> result = new FacadeUpdateResult <ContactData>(); IContactService service = UnitOfWork.GetService <IContactService>(); var query = service.Retrieve(parentId); if (query.HasResult) { Contact parent = query.ToBo <Contact>(); ContactContactMethod child = parent.ContactContactMethods.SingleOrDefault(o => object.Equals(o.Id, childId)); if (child != null) { parent.ContactContactMethods.Remove(child); var saveQuery = parent.Save(); result.Merge(saveQuery); result.AttachResult(parent.RetrieveData <ContactData>()); } else { AddError(result.ValidationResult, "ContactContactMethodCannotBeFound"); } } else { AddError(result.ValidationResult, "ContactCannotBeFound"); } return(result); }
internal ContactContactMethod RetrieveOrNewContactContactMethod(Contact parent, object childId) { ContactContactMethod child = null; if (childId != null) { child = parent.ContactContactMethods.SingleOrDefault(o => object.Equals(o.Id, childId)); } else { child = parent.ContactContactMethods.AddNewBo(); } return(child); }