Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }