示例#1
0
        public IServiceActionResult ManutencaoCreate(ManutencaoEntity manutencaoEntity)
        {
            manutencaoEntity.Validate();

            if (manutencaoEntity.Invalid)
            {
                return(new ServiceActionResult(false, "Algo deu errado ao criar a manutenção!", manutencaoEntity.Notifications));
            }

            var insumo = _insumoRepository.GetById(manutencaoEntity.id_insumo);

            if (insumo == null)
            {
                return(new ServiceActionResult(false, "O Insumo para qual você está tentando realizar a manutenção não existe!", null));
            }

            if (insumo.status_insumo == StatusInsumo.Manutencao)
            {
                return(new ServiceActionResult(false, "Esse insumo já está em manutenção!", null));
            }

            var manutencao = new ManutencaoEntity
                             (
                manutencaoEntity.tipo_manutencao,
                manutencaoEntity.descricao_manutencao,
                StatusManutencao.Iniciada,
                DateTime.Now,
                DateTime.Now,
                insumo.Id,
                manutencaoEntity.user
                             );

            _manutencaoRepository.ManutencaoCreate(manutencao);

            insumo.UpdateInsumo
            (
                insumo.descricao_insumo,
                StatusInsumo.Manutencao,
                insumo.qtd_dias_manut_prev,
                DateTime.Now,
                insumo.user
            );
            _insumoRepository.Update(insumo);

            var agendaManut = _agendaManutRepository.GetByInsumo(insumo.Id);

            if (agendaManut != null)
            {
                agendaManut.UpdateAgendaManut
                (
                    StatusAgendaManut.Fechado,
                    agendaManut.data_manutencao,
                    insumo.data_atualizacao,
                    manutencaoEntity.user
                );
                _agendaManutRepository.Update(agendaManut);
            }

            return(new ServiceActionResult(true, "Manutenção criada!", manutencao));
        }
示例#2
0
        public IServiceActionResult AgendaManutencaoCorretiva(AgendaManutencaoEntity agendaManutEntity)
        {
            agendaManutEntity.Validate();

            if (agendaManutEntity.Invalid)
            {
                return(new ServiceActionResult(false, "Algo deu errado ao agendar a manutenção!", agendaManutEntity.Notifications));
            }

            if (agendaManutEntity.tipo_manutencao == TipoManutencao.Preventiva)
            {
                return(new ServiceActionResult(false, "Não é possível agendar uma manutenção preventiva! Este tipo de agendamento é feito de forma automática.", null));
            }

            var insumo = _insumoRepository.GetById(agendaManutEntity.id_insumo);

            if (insumo == null)
            {
                return(new ServiceActionResult(false, "O Insumo para qual você está tentando agendar a manutenção não existe!", null));
            }

            var agendaManut = new AgendaManutencaoEntity
                              (
                TipoManutencao.Corretiva,
                StatusAgendaManut.Aberto,
                agendaManutEntity.data_manutencao,
                DateTime.Now,
                insumo.Id,
                agendaManutEntity.user
                              );

            _agendaManutRepository.AgendaManutencaoCreate(agendaManut);

            return(new ServiceActionResult(true, "Manutenção corretiva agendada!", agendaManut));
        }
示例#3
0
 public InsumoEntity GetById(
     Guid id,
     [FromServices] IInsumoRepository repository
     )
 {
     return(repository.GetById(id));
 }
示例#4
0
        public IServiceActionResult CreateInsumo(InsumoEntity insumoEntity)
        {
            insumoEntity.Validate();

            if (insumoEntity.Invalid)
            {
                return(new ServiceActionResult(false, "Algo deu errado ao incluir!", insumoEntity.Notifications));
            }

            var insumoNew = new InsumoEntity
                            (
                insumoEntity.descricao_insumo,
                StatusInsumo.Ativo,
                insumoEntity.data_aquisicao,
                DateTime.Now,
                insumoEntity.qtd_dias_manut_prev,
                insumoEntity.id_tipo_insumo,
                insumoEntity.id_fornec_insumo,
                insumoEntity.user
                            );

            _insumoRepository.Create(insumoNew);

            var insumo = _insumoRepository.GetById(insumoNew.Id);

            if (insumo != null)
            {
                var agendaManut = new AgendaManutencaoEntity
                                  (
                    TipoManutencao.Preventiva,
                    StatusAgendaManut.Aberto,
                    insumo.data_aquisicao.AddDays(insumo.qtd_dias_manut_prev),
                    DateTime.Now,
                    insumo.Id,
                    insumo.user
                                  );

                _agendaManutRepository.AgendaManutencaoCreate(agendaManut);
            }
            else
            {
                return(new ServiceActionResult(false, "Algo deu errado ao incluir!", null));
            }

            return(new ServiceActionResult(true, "Insumo criado!", insumo));
        }
示例#5
0
 public async Task <IActionResult> GetById(int id)
 {
     return(Ok(await _insumoRepository.GetById(id)));
 }