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));
            }
        }
Esempio n. 2
0
        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);
        }