示例#1
0
        internal IFacadeUpdateResult <DEntityData> SaveDEntity(DEntityDto dto)
        {
            ArgumentValidator.IsNotNull("dto", dto);

            FacadeUpdateResult <DEntityData> result = new FacadeUpdateResult <DEntityData>();
            IDEntityService service  = UnitOfWork.GetService <IDEntityService>();
            DEntity         instance = RetrieveOrNew <DEntityData, DEntity, IDEntityService>(result.ValidationResult, dto.Id);

            if (result.IsSuccessful)
            {
                instance.Code            = dto.Code;
                instance.Description     = dto.Description;
                instance.EntityTypeId    = dto.EntityTypeId;
                instance.AllowAddItem    = dto.AllowAddItem;
                instance.AllowDeleteItem = dto.AllowDeleteItem;
                instance.AllowEditItem   = dto.AllowEditItem;

                var saveQuery = service.Save(instance);

                result.AttachResult(instance.RetrieveData <DEntityData>());
                result.Merge(saveQuery);
            }

            return(result);
        }
示例#2
0
        internal IFacadeUpdateResult <DEntityData> SaveDEntityItem(object parentId, DEntityItemDto childDto)
        {
            ArgumentValidator.IsNotNull("parentId", parentId);
            ArgumentValidator.IsNotNull("childDto", childDto);

            FacadeUpdateResult <DEntityData> result = new FacadeUpdateResult <DEntityData>();
            IDEntityService service     = UnitOfWork.GetService <IDEntityService>();
            var             parentQuery = service.Retrieve(parentId);

            if (parentQuery.HasResult)
            {
                DEntity     parent = parentQuery.ToBo <DEntity>();
                DEntityItem child  = RetrieveOrNewDEntityItem(parent, childDto.Id);
                if (child != null)
                {
                    child.Text  = childDto.Text;
                    child.Value = childDto.Value;

                    var saveQuery = service.Save(parent);
                    result.Merge(saveQuery);
                    result.AttachResult(parent.RetrieveData <DEntityData>());
                }
                else
                {
                    AddError(result.ValidationResult, "DEntityItemCannotBeFound");
                }
            }

            return(result);
        }
示例#3
0
        internal IFacadeUpdateResult <DEntityData> DeleteDEntityItem(object parentId, object childId)
        {
            ArgumentValidator.IsNotNull("parentId", parentId);
            ArgumentValidator.IsNotNull("childId", childId);

            FacadeUpdateResult <DEntityData> result = new FacadeUpdateResult <DEntityData>();
            IDEntityService service = UnitOfWork.GetService <IDEntityService>();
            var             query   = service.Retrieve(parentId);

            if (query.HasResult)
            {
                DEntity     parent = query.ToBo <DEntity>();
                DEntityItem child  = parent.DEntityItems.SingleOrDefault(o => object.Equals(o.Id, childId));
                if (child != null)
                {
                    parent.DEntityItems.Remove(child);
                    var saveQuery = parent.Save();
                    result.Merge(saveQuery);
                    result.AttachResult(parent.RetrieveData <DEntityData>());
                }
                else
                {
                    AddError(result.ValidationResult, "DEntityItemCannotBeFound");
                }
            }
            else
            {
                AddError(result.ValidationResult, "DEntityCannotBeFound");
            }

            return(result);
        }
示例#4
0
        internal IList <BindingListItem> GetBindingList()
        {
            List <BindingListItem> dataSource = new List <BindingListItem>();
            IDEntityService        service    = UnitOfWork.GetService <IDEntityService>();
            var query = service.GetAll();

            if (query.HasResult)
            {
                foreach (DEntityData data in query.DataList)
                {
                    dataSource.Add(new BindingListItem(data.Id, data.Code));
                }
            }

            return(dataSource);
        }
示例#5
0
        internal IEnumerable <TDto> RetrieveAllDEntity <TDto>(IDataConverter <DEntityData, TDto> converter)
            where TDto : class
        {
            ArgumentValidator.IsNotNull("converter", converter);

            IDEntityService service = UnitOfWork.GetService <IDEntityService>();

            var query = service.GetAll();

            if (query.HasResult)
            {
                return(query.DataToDtoList(converter));
            }

            return(null);
        }
示例#6
0
        internal TDto RetrieveDEntity <TDto>(object entityId, IDataConverter <DEntityData, TDto> converter)
            where TDto : class
        {
            ArgumentValidator.IsNotNull("entityId", entityId);
            ArgumentValidator.IsNotNull("converter", converter);

            IDEntityService service = UnitOfWork.GetService <IDEntityService>();
            var             query   = service.Retrieve(entityId);

            if (query.HasResult)
            {
                return(query.DataToDto(converter));
            }
            else
            {
                return(null);
            }
        }
示例#7
0
        internal TDto RetrieveOrNewDEntity <TDto>(object instanceId, IDataConverter <DEntityData, TDto> converter)
            where TDto : class
        {
            ArgumentValidator.IsNotNull("converter", converter);

            IDEntityService service = UnitOfWork.GetService <IDEntityService>();
            FacadeUpdateResult <DEntityData> result = new FacadeUpdateResult <DEntityData>();
            DEntity instance = RetrieveOrNew <DEntityData, DEntity, IDEntityService>(result.ValidationResult, instanceId);

            if (result.IsSuccessful)
            {
                return(converter.Convert(instance.RetrieveData <DEntityData>()));
            }
            else
            {
                return(null);
            }
        }
示例#8
0
        internal IList <BindingListItem> GetEntityItemList(object entityId)
        {
            ArgumentValidator.IsNotNull("entityId", entityId);

            List <BindingListItem> dataSource = new List <BindingListItem>();
            IDEntityService        service    = UnitOfWork.GetService <IDEntityService>();
            var query = service.Retrieve(entityId);

            if (query.HasResult)
            {
                foreach (DEntityItemData item in query.Data.DEntityItemsData)
                {
                    dataSource.Add(new BindingListItem(item.Value, item.Text));
                }
            }

            return(dataSource);
        }