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()); }
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(); }