コード例 #1
0
        public async Task <ActionResult> UpdateCharity(Guid id, [FromBody] CharityUpdateDto charityDto, [FromQuery] bool pending_data = false)
        {
            // Check if the donor already exists
            var charity = await CharitableEntityApplication.GetCharity((c) => c.Id.Equals(id));

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

            if (!charity.Cnpj.Equals(charityDto.Cnpj))
            {
                // Check if the charity entity already exists
                bool hasCharity = await CharitableEntityApplication.ExistCharity((c) => c.Cnpj.Equals(charityDto.Cnpj));

                if (hasCharity)
                {
                    ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"A entidade beneficente, {charityDto.Cnpj}, já existe.");
                    return(BadRequest(error));
                }
            }

            await CharitableEntityApplication.UpdateCharity(id, charityDto, pending_data);

            return(Ok());
        }
コード例 #2
0
        public async Task UpdateCharity(Guid id, CharityUpdateDto charityDto, bool pending_data)
        {
            var charityModel     = Repository.GetWhereAsQueryable(c => c.Id.Equals(id)).First();
            var charitableEntity = this.Mapper.Map <CharitableEntity>(charityDto);

            charitableEntity.Id           = charityModel.Id;
            charitableEntity.Status       = charityModel.Status;
            charitableEntity.Approver     = charityModel.Approver;
            charitableEntity.ApproverData = charityModel.ApproverData;
            charitableEntity.IsActive     = charityModel.IsActive;
            charitableEntity.UserId       = charityModel.UserId;

            if (pending_data)
            {
                var approval = new Approval()
                {
                    Id = Guid.NewGuid(), CharitableEntityId = charityModel.Id, Date = DateTime.UtcNow.ToBrazilianTimeZone(), Message = "Análise Pendente", Detail = string.Empty, Status = (int)ApproverStatus.PENDING
                };

                await ApprovalRepository.AddAsync(approval);

                charitableEntity.ApproverData = DateTime.UtcNow.ToBrazilianTimeZone();
                charitableEntity.Approver     = string.Empty;
                charitableEntity.Status       = ApproverStatus.PENDING;
                charitableEntity.IsActive     = false;
            }
            else
            {
                charitableEntity.Name = charityModel.Name;
                charitableEntity.Cnpj = charityModel.Cnpj;
            }

            this.Repository.Udate(charitableEntity);

            await this.Repository.SaveAsync();
        }