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)); }
public IServiceActionResult ManutencaoCorretivaUpdate(ManutencaoEntity manutencaoEntity) { manutencaoEntity.Validate(); if (manutencaoEntity.Invalid && manutencaoEntity.tipo_manutencao != TipoManutencao.Corretiva) { return(new ServiceActionResult(false, "Algo deu errado ao editar 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 editar a manutenção não existe!", null)); } var manutencao = _manutencaoRepository.GetById(manutencaoEntity.Id); if (manutencao == null) { return(new ServiceActionResult(false, "A manutenção para qual você está tentando editar não existe!", null)); } manutencao.UpdateManutencao ( manutencaoEntity.descricao_manutencao, manutencaoEntity.status_manutencao, (manutencaoEntity.status_manutencao == StatusManutencao.Concluida) ? DateTime.Now : manutencaoEntity.data_fim, manutencao.user ); _manutencaoRepository.Update(manutencao); if (manutencaoEntity.status_manutencao == StatusManutencao.Concluida) { insumo.UpdateInsumo ( insumo.descricao_insumo, StatusInsumo.Ativo, insumo.qtd_dias_manut_prev, insumo.data_atualizacao, insumo.user ); _insumoRepository.Update(insumo); return(new ServiceActionResult(true, "Manutenção finalizada!", manutencao)); } else { return(new ServiceActionResult(true, "Manutenção salva!", manutencao)); } }