Пример #1
0
        public async Task <ActionResult> CreateCharityInfo(Guid id, [FromForm] CharityInfoCreateDto charityDto)
        {
            // Check if the donor already exists
            var charityResponse = await CharitableEntityApplication.GetCharity((c) => c.Id.Equals(id), true);

            if (charityResponse == null)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"A entidade beneficente, {id}, não foi encontrada.");
                return(NotFound(error));
            }

            if (charityResponse.Information != null)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"As informações da entidade beneficente já foram cadastradas.");
                return(BadRequest(error));
            }
            else
            {
                if (charityResponse.Status.ToUpper() != ApproverStatus.APPROVED.ToString() ||
                    charityResponse.Active == false)
                {
                    ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"Não foi possível cadastrar as informações da entidade benefiecente porque a entidade não está ativa ou aprovada.");
                    return(BadRequest(error));
                }
            }

            await CharitableInformationApplication.CreateCharityInfo(id, charityDto, Request);

            return(CreatedAtRoute("GetCharityById", new { id }, null));;
        }
Пример #2
0
        public async Task <ActionResult> UpdateCharityInfoImage(Guid id, [FromForm] CharityInfoImageUpdateDto charityDto)
        {
            // Check if the donor already exists
            var charityResponse = await CharitableEntityApplication.GetCharity((c) => c.Id.Equals(id), true);

            var imageName = charityDto.Name.ToLower();

            if (imageName != "picture" && imageName != "image01" && imageName != "image02")
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O nome da imagem deve ser picture, image01 ou image02");
                return(BadRequest(error));
            }

            if (charityResponse == null)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"A entidade beneficente, {id}, não foi encontrada.");
                return(NotFound(error));
            }

            if (charityResponse.Information == null)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"As infomações da entidade beneficente não foram cadastradas.");
                return(BadRequest(error));
            }

            await CharitableInformationApplication.UpdateCharityInfoImage(id, charityDto, charityResponse.Information, Request);

            return(Ok());
        }
Пример #3
0
        public async Task <ActionResult> UpdateCharityInfo(Guid id, [FromBody] CharityInfoUpdateDto charityDto)
        {
            // Check if the donor already exists
            var charityResponse = await CharitableEntityApplication.GetCharity((c) => c.Id.Equals(id), true);

            if (charityResponse == null)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"A entidade beneficente, {id}, não foi encontrada.");
                return(NotFound(error));
            }

            if (charityResponse.Information == null)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"As infomações da entidade beneficente não foram cadastradas.");
                return(BadRequest(error));
            }
            else if (string.IsNullOrWhiteSpace(charityResponse.Approver) ||
                     charityResponse.Status.ToUpper() != ApproverStatus.APPROVED.ToString() ||
                     charityResponse.Active == false)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"Não foi possível atualizar as informações. A entidade não está ativa ou aprovada.");
                return(BadRequest(error));
            }

            await CharitableInformationApplication.UpdateCharityInfo(id, charityDto, Request);

            return(Ok());
        }
Пример #4
0
 public CharitiesController(CharitableEntityApplication charitableEntityApplication,
                            CharitableInformationApplication charitableInformationApplication,
                            UserApplication userApplication,
                            ItemApplication itemApplication)
 {
     this.CharitableEntityApplication      = charitableEntityApplication;
     this.CharitableInformationApplication = charitableInformationApplication;
     this.UserApplication = userApplication;
     this.ItemApplication = itemApplication;
 }
Пример #5
0
        public async Task <ActionResult> UpdateCharityInfoItem(Guid id, [FromBody] CharityInfoItemDto charityDto)
        {
            // Check if the donor already exists
            var charityResponse = await CharitableEntityApplication.GetCharity((c) => c.Id.Equals(id), true);

            if (charityResponse == null)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"A entidade beneficente, {id}, não foi encontrada.");
                return(NotFound(error));
            }
            else if (string.IsNullOrWhiteSpace(charityResponse.Approver) ||
                     charityResponse.Status.ToUpper() != ApproverStatus.APPROVED.ToString() ||
                     charityResponse.Active == false)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"Não foi possível atualizar as informações. A entidade não está ativa ou aprovada.");
                return(BadRequest(error));
            }

            if (charityDto.items != null && charityDto.items.Count > 0)
            {
                var distinctItems = charityDto.items.Distinct();

                if (distinctItems.Count() != charityDto.items.Count())
                {
                    ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"Não é possível inserir itens duplicados.");
                    return(BadRequest(error));
                }

                var lstItems = await ItemApplication.GetItemIn(charityDto.items);

                if (lstItems.Count() != charityDto.items.Count())
                {
                    ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"Existem itens inválidos.");
                    return(BadRequest(error));
                }
            }

            await CharitableInformationApplication.UpdateCharityInfoItem(id, charityDto);

            return(Ok());
        }
Пример #6
0
        public async Task <ActionResult <CharityInfoItemResponseDto> > GetCharityItem(Guid id)
        {
            CharityResponseDto charityDto = await CharitableEntityApplication.GetCharity(c => c.Id.Equals(id), true);

            if (charityDto == null)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.NotFound, $"A entidade beneficente, {id}, não foi encontrada.");
                return(NotFound(error));
            }


            if (charityDto.Information == null)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.NotFound, $"As informações complementares da entidade beneficente não foram cadastradas.");
                return(NotFound(error));
            }

            var charityInfoItems = await CharitableInformationApplication.GetCharityInfoItem(p => p.CharitableInformationId == charityDto.Information.Id);

            return(Ok(charityInfoItems));
        }