internal IFacadeUpdateResult <DomainData> SaveDomainMainMenu(object parentId, DomainMainMenuDto childDto) { ArgumentValidator.IsNotNull("parentId", parentId); ArgumentValidator.IsNotNull("childDto", childDto); FacadeUpdateResult <DomainData> result = new FacadeUpdateResult <DomainData>(); IDomainService service = UnitOfWork.GetService <IDomainService>(); var parentQuery = service.Retrieve(parentId); if (parentQuery.HasResult) { Domain parent = parentQuery.ToBo <Domain>(); DomainMainMenu child = RetrieveOrNewDomainMainMenu(parent, childDto.Id); if (child != null) { child.MainMenuId = childDto.MainMenuId; child.Sort = childDto.Sort; var saveQuery = service.Save(parent); result.Merge(saveQuery); result.AttachResult(parent.RetrieveData <DomainData>()); } else { AddError(result.ValidationResult, "DomainMainMenuCannotBeFound"); } } return(result); }
internal IFacadeUpdateResult <DomainData> DeleteDomainMainMenu(object parentId, object childId) { ArgumentValidator.IsNotNull("parentId", parentId); ArgumentValidator.IsNotNull("childId", childId); FacadeUpdateResult <DomainData> result = new FacadeUpdateResult <DomainData>(); IDomainService service = UnitOfWork.GetService <IDomainService>(); var query = service.Retrieve(parentId); if (query.HasResult) { Domain parent = query.ToBo <Domain>(); DomainMainMenu child = parent.DomainMainMenus.SingleOrDefault(o => object.Equals(o.Id, childId)); if (child != null) { parent.DomainMainMenus.Remove(child); var saveQuery = parent.Save(); result.Merge(saveQuery); result.AttachResult(parent.RetrieveData <DomainData>()); } else { AddError(result.ValidationResult, "DomainMainMenuCannotBeFound"); } } else { AddError(result.ValidationResult, "DomainCannotBeFound"); } return(result); }
internal DomainMainMenu RetrieveOrNewDomainMainMenu(Domain parent, object childId) { DomainMainMenu child = null; if (childId != null) { child = parent.DomainMainMenus.SingleOrDefault(o => object.Equals(o.Id, childId)); } else { child = parent.DomainMainMenus.AddNewBo(); } return(child); }