public ActionResult AddServicesInCompany([FromBody] AddMultipleServicesModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var result = _companyService.CreateServiceForCompany(model); return(Ok(result)); } catch (ArgumentException e) { return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message)); } }
public ResponseModel CreateServiceForCompany(AddMultipleServicesModel model) { var resp = new ResponseModel(); try { var company = _companyRepository.GetById(Guid.Parse(model.CompanyId)); if (company == null) { resp.Result = "Não foi possível encontrar a empresa"; return(resp); } if (model.Services != null && model.Services.Count > 0) { if (model.Services.All(x => x.DurationMinutes > 0)) { if (model.Services.All(x => x.Name != null && x.Name != String.Empty)) { var servicesCompany = _serviceRepository.GetServicesByCompanyId(company.CompanyId); model.Services.ForEach(serviceModel => { // não adicionar dois serviços com o mesmo nome na empresa if (servicesCompany.All(x => x.Name.ToLowerInvariant() != serviceModel.Name.ToLowerInvariant())) { MeAgendaAi.Domain.Entities.Services service = new MeAgendaAi.Domain.Entities.Services { ServiceId = Guid.NewGuid(), CompanyId = company.CompanyId, Name = serviceModel.Name, DurationMinutes = serviceModel.DurationMinutes, CreatedAt = DateTimeUtil.UtcToBrasilia(), LastUpdatedAt = DateTimeUtil.UtcToBrasilia() }; _serviceRepository.Add(service); } }); resp.Success = true; resp.Message = "Serviços adicionados à empresa com sucesso"; } else { resp.Message = "Adicione um nome para o serviço"; } } else { resp.Message = "Tempo de duração do serviço deve ser maior do que zero"; } } else { resp.Message = "Lista de serviços vazia, adicione algum serviço"; } } catch (Exception) { resp.Message = "Não foi possível adicionar o serviço"; } return(resp); }