public async Task <IActionResult> EdicionDetalle([FromBody] McdetCargaForDosEdicionRequest request) { var McdetCargaForDosBLL = new McdetCargaForDosBLL(context, mapper); var response = await McdetCargaForDosBLL.Edicion(request); return(new OkObjectResult(response)); }
public async Task <McdetCargaForDosEdicionResponse> Edicion(McdetCargaForDosEdicionRequest request) { var McdetCargaForDosDAL = new McdetCargaForDosDAL(this.context, this.mapper); return(await McdetCargaForDosDAL.Edicion(request)); }
public async Task <McdetCargaForDosEdicionResponse> Edicion(McdetCargaForDosEdicionRequest request) { try { int actualizadoCorrectamente = 0; var McdetCargaForDosEdicion = await context.McdetCargaForDos.Where(x => x.INumCarga == request.NumCarga && x.INumDetCarga == request.CodigoDetalle).AsNoTracking().FirstOrDefaultAsync(); if (McdetCargaForDosEdicion != null) { McdetCargaForDosEdicion.VRuc = request.Ruc; McdetCargaForDosEdicion.VRazSocial = request.RazonSocial; McdetCargaForDosEdicion.VZonEspecifica = request.ZonaEspecifica; McdetCargaForDosEdicion.VPrioridad = request.Prioridad; McdetCargaForDosEdicion.VPerIntervencion = request.PermisoInt; context.McdetCargaForDos.Update(McdetCargaForDosEdicion); actualizadoCorrectamente = await context.SaveChangesAsync(); } if (!string.IsNullOrEmpty(request.Trabajadores)) { //var pt = await context.McmaePt.Where(t => t.VNumPt == McdetCargaForDosEdicion.VNumPt).AsNoTracking().FirstOrDefaultAsync(); var trab = request.Trabajadores.Split(','); var trabajadoresToDisable = await context.McmaeCargaTraForDos.Where(x => x.INumCarga == request.NumCarga && x.INumDetCarga == request.CodigoDetalle && !trab.Contains(x.ICodTrabjador.ToString()) && x.BEstRegistro == true).AsNoTracking().ToListAsync(); foreach (var item in trab) { var traForDos = await context.McmaeCargaTraForDos.Where(x => x.INumCarga == request.NumCarga && x.INumDetCarga == request.CodigoDetalle && x.ICodTrabjador == int.Parse(item)).AsNoTracking().FirstOrDefaultAsync(); if (traForDos == null) { McmaeCargaTraForDos tpt = new McmaeCargaTraForDos { INumCarga = request.NumCarga, INumDetCarga = request.CodigoDetalle, BEstRegistro = true, VCodUsuCreacion = request.Usuario, SdFecCreacion = DateTime.Now, CNomTerCreacion = request.NombreTerminal, ICodTrabjador = int.Parse(item) }; await context.McmaeCargaTraForDos.AddAsync(tpt); await context.SaveChangesAsync(); } else { traForDos.CNomTerModificacion = request.NombreTerminal; traForDos.VCodUsuModificacion = request.Usuario; traForDos.SdFecModificacion = DateTime.Now; traForDos.BEstRegistro = true; context.McmaeCargaTraForDos.Update(traForDos); int r = await context.SaveChangesAsync(); } } if (trabajadoresToDisable != null) { foreach (var item in trabajadoresToDisable) { item.BEstRegistro = false; context.McmaeCargaTraForDos.Update(item); int r = await context.SaveChangesAsync(); } } } if (actualizadoCorrectamente > 0) { return(new McdetCargaForDosEdicionResponse { Exito = true, Mensaje = "Detalle de carga fue actualizado exitosamente." }); } else { return(new McdetCargaForDosEdicionResponse { Exito = false, Mensaje = "Detalle de carga no fue actualizado correctamente." }); } } catch (Exception ex) { Console.Write(ex.Message); throw new Exception(ex.Message); } }