예제 #1
0
        public RetrieveAllPagedResultOutput <ConditionDto, long> RetrieveAllPagedResult(
            RetrieveAllConditionsPagedResultInput input)
        {
            ConditionRepository.Includes.Add(r => r.LastModifierUser);
            ConditionRepository.Includes.Add(r => r.CreatorUser);
            ConditionRepository.Includes.Add(r => r.ConditionType);

            IQueryable <Condition> conditionsQuery = ConditionPolicy.CanRetrieveManyEntities(
                ConditionRepository.GetAll()
                .WhereIf(!input.ConditionIds.IsNullOrEmpty(), r => input.ConditionIds.Contains(r.Id))
                .WhereIf(!String.IsNullOrEmpty(input.Name), r => r.Name.ToLower().Contains(input.Name.ToLower())))
                                                     .OrderBy(r => r.Order);

            int totalCount = conditionsQuery.Count();
            IReadOnlyList <ConditionDto> conditionDtos = conditionsQuery
                                                         .OrderBy(r => r.Name)
                                                         .Skip(input.SkipCount).Take(input.MaxResultCount)
                                                         .ToList().MapIList <Condition, ConditionDto>().ToList();

            ConditionRepository.Includes.Clear();

            return(new RetrieveAllPagedResultOutput <ConditionDto, long>()
            {
                Items = conditionDtos,
                TotalCount = totalCount
            });
        }
예제 #2
0
        public UpdateOutput <ConditionDto, long> Update(UpdateInput <ConditionDto, long> input)
        {
            throw new NotSupportedException("This method is implemented but it is not safely to use it.");

            Condition newConditionEntity = input.Entity.MapTo <Condition>();

            if (newConditionEntity == null)
            {
                throw new CityQuestItemNotFoundException(CityQuestConsts.CityQuestItemNotFoundExceptionMessageBody, "\"Condition\"");
            }

            if (!ConditionPolicy.CanUpdateEntity(newConditionEntity))
            {
                throw new CityQuestPolicyException(CityQuestConsts.CQPolicyExceptionUpdateDenied, "\"Condition\"");
            }

            ConditionRepository.Includes.Add(r => r.LastModifierUser);
            ConditionRepository.Includes.Add(r => r.CreatorUser);
            ConditionRepository.Includes.Add(r => r.ConditionType);

            ConditionRepository.Update(newConditionEntity);
            ConditionDto newConditionDto = (ConditionRepository.Get(newConditionEntity.Id)).MapTo <ConditionDto>();

            ConditionRepository.Includes.Clear();

            return(new UpdateOutput <ConditionDto, long>()
            {
                UpdatedEntity = newConditionDto
            });
        }
예제 #3
0
        public RetrieveOutput <ConditionDto, long> Retrieve(RetrieveConditionInput input)
        {
            ConditionRepository.Includes.Add(r => r.LastModifierUser);
            ConditionRepository.Includes.Add(r => r.CreatorUser);
            ConditionRepository.Includes.Add(r => r.ConditionType);

            IList <Condition> conditionEntities = ConditionRepository.GetAll()
                                                  .WhereIf(input.Id != null, r => r.Id == input.Id)
                                                  .WhereIf(!String.IsNullOrEmpty(input.Name), r => r.Name.ToLower().Contains(input.Name.ToLower()))
                                                  .ToList();

            if (conditionEntities.Count != 1)
            {
                throw new CityQuestItemNotFoundException(CityQuestConsts.CityQuestItemNotFoundExceptionMessageBody, "\"Condition\"");
            }

            if (!ConditionPolicy.CanRetrieveEntity(conditionEntities.Single()))
            {
                throw new CityQuestPolicyException(CityQuestConsts.CQPolicyExceptionRetrieveDenied, "\"Condition\"");
            }

            ConditionDto conditionEntity = conditionEntities.Single().MapTo <ConditionDto>();

            ConditionRepository.Includes.Clear();

            return(new RetrieveOutput <ConditionDto, long>()
            {
                RetrievedEntity = conditionEntity
            });
        }
예제 #4
0
        public RetrieveAllConditionsLikeComboBoxesOutput RetrieveAllConditionsLikeComboBoxes(
            RetrieveAllConditionsLikeComboBoxesInput input)
        {
            IReadOnlyList <ComboboxItemDto> conditionsLikeComboBoxes = ConditionPolicy.CanRetrieveManyEntities(
                ConditionRepository.GetAll()).ToList().OrderBy(r => r.Order)
                                                                       .Select(r => new ComboboxItemDto(r.Id.ToString(), r.Name)).ToList();

            return(new RetrieveAllConditionsLikeComboBoxesOutput()
            {
                Items = conditionsLikeComboBoxes
            });
        }
예제 #5
0
        public RetrieveAllOutput <ConditionDto, long> RetrieveAll(RetrieveAllConditionInput input)
        {
            ConditionRepository.Includes.Add(r => r.LastModifierUser);
            ConditionRepository.Includes.Add(r => r.CreatorUser);
            ConditionRepository.Includes.Add(r => r.ConditionType);

            IList <Condition> conditionEntities = ConditionPolicy.CanRetrieveManyEntities(
                ConditionRepository.GetAll()
                .WhereIf(!input.ConditionIds.IsNullOrEmpty(), r => input.ConditionIds.Contains(r.Id))
                .WhereIf(!String.IsNullOrEmpty(input.Name), r => r.Name.ToLower().Contains(input.Name.ToLower())))
                                                  .OrderBy(r => r.Order)
                                                  .ToList();

            IList <ConditionDto> result = conditionEntities.MapIList <Condition, ConditionDto>();

            ConditionRepository.Includes.Clear();

            return(new RetrieveAllOutput <ConditionDto, long>()
            {
                RetrievedEntities = result
            });
        }
예제 #6
0
        public DeleteOutput <long> Delete(DeleteInput <long> input)
        {
            throw new NotSupportedException("This method is implemented but it is not safely to use it.");

            Condition conditionEntityForDelete = ConditionRepository.Get(input.EntityId);

            if (conditionEntityForDelete == null)
            {
                throw new CityQuestItemNotFoundException(CityQuestConsts.CityQuestItemNotFoundExceptionMessageBody, "\"Condition\"");
            }

            if (!ConditionPolicy.CanDeleteEntity(conditionEntityForDelete))
            {
                throw new CityQuestPolicyException(CityQuestConsts.CQPolicyExceptionDeleteDenied, "\"Condition\"");
            }

            ConditionRepository.Delete(conditionEntityForDelete);

            return(new DeleteOutput <long>()
            {
                DeletedEntityId = input.EntityId
            });
        }
예제 #7
0
        public CreateOutput <ConditionDto, long> Create(CreateInput <ConditionDto, long> input)
        {
            throw new NotSupportedException("This method is implemented but it is not safely to use it.");

            Condition newConditionEntity = input.Entity.MapTo <Condition>();

            if (!ConditionPolicy.CanCreateEntity(newConditionEntity))
            {
                throw new CityQuestPolicyException(CityQuestConsts.CQPolicyExceptionCreateDenied, "\"Condition\"");
            }

            ConditionRepository.Includes.Add(r => r.LastModifierUser);
            ConditionRepository.Includes.Add(r => r.CreatorUser);
            ConditionRepository.Includes.Add(r => r.ConditionType);

            ConditionDto newConditionDto = (ConditionRepository.Insert(newConditionEntity)).MapTo <ConditionDto>();

            ConditionRepository.Includes.Clear();

            return(new CreateOutput <ConditionDto, long>()
            {
                CreatedEntity = newConditionDto
            });
        }