//api guardar actividad public HttpResponseMessage Post(CreateSubcentroDto model) { try { var rpta = CCosto.Save(model); return(Request.CreateResponse(HttpStatusCode.OK, rpta)); } catch { var message = "error al guardar"; return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, message)); } }
//metodo para guardar lote y detalle lote public string Save(CreateSubcentroDto model) { var rpta = ""; try { using (var ctx = new PresupuestoContext()) { using (DbContextTransaction transaction = ctx.Database.BeginTransaction()) { try { var subCentroCosto = new SPSubCentroCosto { Id = model.Id, fincaId = model.fincaId, nombre = model.nombre, codigo_nav = model.codigo_nav, codigo = model.codigo, estado = "A" }; if (subCentroCosto.Id > 0) { ctx.Entry(subCentroCosto).State = EntityState.Modified; } else { ctx.SPSubCentroCosto.Add(subCentroCosto); } ctx.SaveChanges(); int fincaId = subCentroCosto.Id; //eliminamos los existentes para sustituirlos var detalles = ctx.SPCCostoActividad.Where(x => x.fincaId == fincaId).ToList(); ctx.SPCCostoActividad.RemoveRange(detalles); ctx.SaveChanges(); if (model.actividades != null) { foreach (var d in model.actividades) { var detalle = new SPCCostoActividad { fincaId = fincaId, actividadId = d }; ctx.SPCCostoActividad.Add(detalle); ctx.SaveChanges(); } } transaction.Commit(); rpta = "sub centro de costo registado correctamente"; } catch (Exception ex) { transaction.Rollback(); throw ex; } } } } catch (Exception e) { throw e; } return(rpta); }