public async Task <IActionResult> PutMovEPIModel(int id, MovEPIModel movEPIModel) { if (id != movEPIModel.IdMovimento) { return(BadRequest()); } _context.Entry(movEPIModel).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MovEPIModelExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <MovEPIModel> > PostMovEPIModel(MovEPIModel movEPIModel) { _context.MovEPIModels.Add(movEPIModel); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (MovEPIModelExists(movEPIModel.IdMovimento)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetMovEPIModel", new { id = movEPIModel.IdMovimento }, movEPIModel)); }
public async Task <List <String> > GetEntradaColaborador(long idColaborador, [FromQuery] long[] idEPIs) { List <String> Retorno = new List <String>(); var colaboradorModel = await _context.ColaboradorModels.FindAsync(idColaborador); Boolean movAdded = false; if (colaboradorModel == null) { return(null); } //Criação do Movimento da Entrada do Colaborador MovimentoModel movimentoModel = new MovimentoModel(); movimentoModel.IdColaborador = idColaborador; movimentoModel.DataHora = DateTime.Now; movimentoModel.TypeMov = "E"; movimentoModel.Check = 1; /* _context.MovimentoModels.Add(movimentoModel); * await _context.SaveChangesAsync();*/ Retorno.Add(colaboradorModel.PrimeiroNomeCol + " " + colaboradorModel.UltimoNomeCol); var epiNecessarios = await _context.EPICargoNecModelViews.ToListAsync(); var epiModel = await _context.EPIModels.ToListAsync(); //Criação da query para verificar quais os epis necessarios para o cargo do Colaborador var epiNecessariosQuery = (from x in epiNecessarios where x.IdCargo == colaboradorModel.IdCargo select x.IdTipoEpi).ToList(); var epiNecessariosFinal = epiNecessariosQuery.ToArray(); List <int> idEPIsFinal = new List <int>(); List <int> EPIsInv = new List <int>(); for (int i = 0; i < idEPIs.Length; i++) { var tipoepif = (from x in epiModel where x.IdEPI == idEPIs[i] && x.Valido == 1 select x.IdTipoEPI).ToList(); if (tipoepif.Any()) { idEPIsFinal.Add(tipoepif.First()); } } for (int i = 0; i < idEPIs.Length; i++) { var epiInvAux = (from x in epiModel where x.IdEPI == idEPIs[i] && x.Valido == 0 select x.IdTipoEPI).ToList(); if (epiInvAux.Any()) { EPIsInv.Add(epiInvAux.First()); } } //Comparação dos epis necessarios e os epis que passaram no sensor var Compare = idEPIsFinal.SequenceEqual(epiNecessariosFinal); if (Compare == true) { _context.MovimentoModels.Add(movimentoModel); await _context.SaveChangesAsync(); return(Retorno.Distinct().ToList()); } else if (Compare == false) { MovEPIModel movEPI = new MovEPIModel(); for (int i = 0; i < epiNecessariosFinal.Length; i++) { if (idEPIsFinal.ToList().Contains(epiNecessariosFinal[i]) == false) { if (movAdded == false) { movimentoModel.Check = 0; _context.MovimentoModels.Add(movimentoModel); await _context.SaveChangesAsync(); movAdded = true; } var epimodel = await _context.TipoEPIModels.FindAsync(epiNecessariosFinal[i]); Retorno.Add("Missing:" + epimodel.NomeTipoEPI.ToString()); //Criação do MovEPI devido a epi em falta movEPI.IdMovimento = movimentoModel.IdMovimento; movEPI.IdTipoEPI = epiNecessariosFinal[i]; _context.MovEPIModels.Add(movEPI); await _context.SaveChangesAsync(); } } if (movAdded == false) { movimentoModel.Check = 1; _context.MovimentoModels.Add(movimentoModel); await _context.SaveChangesAsync(); movAdded = true; } } if (EPIsInv.ToArray().Length > 0) { Retorno.Add("EPIs fora de validade:"); for (int i = 0; i < EPIsInv.ToArray().Length; i++) { var epimodel = await _context.TipoEPIModels.FindAsync(EPIsInv.ToArray()[i]); Retorno.Add(epimodel.NomeTipoEPI.ToString()); } } return(Retorno.Distinct().ToList()); //colaboradorModel.PrimeiroNomeCol.ToString(); }