public ActionResult AddServicesToEmployee(AddServiceToEmployeeModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var result = _employeeService.AddServiceToEmployee(model); return(Ok(result)); } catch (ArgumentException e) { return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message)); } }
public ResponseModel AddServiceToEmployee(AddServiceToEmployeeModel model) { var resp = new ResponseModel(); try { if (model.ServicesIds != null && model.ServicesIds.Count > 0) { if (GuidUtil.IsGuidValid(model.EmployeeId) && model.ServicesIds.All(x => GuidUtil.IsGuidValid(x))) { var employee = _employeeRepository.GetEmployeeByIdWithServices(Guid.Parse(model.EmployeeId)); if (employee != null) { //var ess = employee.EmployeeServices; //ess.ForEach(es => { // _serviceEmployeeRepository.Remove(es); //}); List <ServiceEmployee> ses = new List <ServiceEmployee>(); model.ServicesIds.ForEach(serviceId => { var service = _serviceRepository.GetById(Guid.Parse(serviceId)); ServiceEmployee serviceEmployee = new ServiceEmployee { EmployeeServiceId = Guid.NewGuid(), ServiceId = Guid.Parse(serviceId), EmployeeId = Guid.Parse(model.EmployeeId), Employee = employee, Service = service, CreatedAt = DateTimeUtil.UtcToBrasilia(), LastUpdatedAt = DateTimeUtil.UtcToBrasilia(), UpdatedBy = employee.UserId }; //_serviceEmployeeRepository.Add(serviceEmployee); ses.Add(serviceEmployee); }); employee.EmployeeServices = ses; _employeeRepository.Edit(employee); resp.Success = true; resp.Message = "Serviços adicionados ao funcionário com sucesso"; } else { resp.Message = "Funcionário não encontrado"; } } else { resp.Message = "Guid inválido"; } } else { resp.Message = "Lista de serviços vazia, adicione algum serviço"; } } catch (Exception e) { resp.Message = $"Não foi possível adicionar o serviço ao funcionário: {e.Message} / {e.InnerException?.Message}"; } return(resp); }