/// <summary> /// Guarda|Actualiza un registro en el catalogo /// </summary> /// <param name="salesRoom">Objeto a guardar</param> /// <param name="blnUpdate">True. Actualiza | False. Inserta</param> /// <returns>-1 Existe un registro con el mismo ID | 0. No se guardó | 1. Se guardó</returns> /// <history> /// [emoguel] created 22/04/2016 /// </history> public static int SaveSalesRoom(SalesRoom salesRoom, bool blnUpdate) { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { int nRes = 0; #region Update if (blnUpdate) { dbContext.Entry(salesRoom).State = System.Data.Entity.EntityState.Modified; return(dbContext.SaveChanges()); } #endregion #region Add else { using (var transaction = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { SalesRoom salesRoomVal = dbContext.SalesRooms.Where(sr => sr.srID == salesRoom.srID).FirstOrDefault(); if (salesRoomVal != null) { return(-1); } else { var GetDate = BRHelpers.GetServerDate(); salesRoom.srGiftsRcptCloseD = GetDate; salesRoom.srCxCCloseD = GetDate; salesRoom.srShowsCloseD = GetDate; salesRoom.srMealTicketsCloseD = GetDate; salesRoom.srSalesCloseD = GetDate; dbContext.SalesRooms.Add(salesRoom); if (dbContext.SaveChanges() > 0) { dbContext.USP_OR_AddAccessAdministrator("SR"); dbContext.SaveChanges(); nRes = 1; transaction.Commit(); } else { transaction.Rollback(); return(0); } } } catch { transaction.Rollback(); nRes = 0; } } } #endregion return(nRes); } }
/// <summary> /// Guarda|Actualiza un registro en el catalogo /// </summary> /// <param name="warehouse">Objeto a guardar</param> /// <param name="blnUpdate">True. Actualiza | False. Inserta</param> /// <returns>-1 Existe un registro con el mismo ID | 0. No se guardó | 1. Se guardó</returns> /// <history> /// [emoguel] created 22/04/2016 /// </history> public static int SaveWarehouse(Warehouse warehouse, bool blnUpdate) { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { int nRes = 0; #region Update if (blnUpdate) { dbContext.Entry(warehouse).State = System.Data.Entity.EntityState.Modified; return(dbContext.SaveChanges()); } #endregion #region Add else { using (var transaction = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { Warehouse warehouseVal = dbContext.Warehouses.Where(wh => wh.whID == warehouse.whID).FirstOrDefault(); if (warehouseVal != null) { return(-1); } else { dbContext.Warehouses.Add(warehouse); if (dbContext.SaveChanges() > 0) { dbContext.USP_OR_AddAccessAdministrator("WH"); dbContext.SaveChanges(); nRes = 1; transaction.Commit(); } else { transaction.Rollback(); return(0); } } } catch { transaction.Rollback(); nRes = 0; } } } #endregion return(nRes); } }
/// <summary> /// Agrega|Actualiza los datos de un LeadSource /// </summary> /// <param name="leadSource">Objeto a guardar</param> /// <param name="lstLocAdd">Locaciones a relacionar</param> /// <param name="lstLocDel">Locaciones a des-relacionar</param> /// <param name="lstAgeAdd">Agencias a relacionar</param> /// <param name="lstAgeDel">Agencias a desrelacionar</param> /// <param name="blnUpdate">True. Actualiza | False. Elimina</param> /// <returns>-1. Existe un registro con el mismo ID | 0. No se guardó | >1. Se guardó correctamente</returns> /// <history> /// [emoguel] created 17/05/2016 /// [emoguel] modified 27/06/2016 --> se volvió async /// </history> public async static Task <int> SaveLeadSource(LeadSource leadSource, List <Location> lstLocAdd, List <Location> lstLocDel, List <Agency> lstAgeAdd, List <Agency> lstAgeDel, bool blnUpdate) { return(await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { using (var transaction = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { #region LeadSources LeadSource leadSourceSave = null; #region Update if (blnUpdate) { leadSourceSave = dbContext.LeadSources.Where(ls => ls.lsID == leadSource.lsID).Include("Agencies").FirstOrDefault(); ObjectHelper.CopyProperties(leadSourceSave, leadSource); } #endregion #region Insert else { leadSourceSave = dbContext.LeadSources.Where(ls => ls.lsID == leadSource.lsID).FirstOrDefault(); if (leadSourceSave != null) { return -1; } else { DateTime dtServer = BRHelpers.GetServerDateTime(); leadSource.lsTransBridgeDT = dtServer; leadSource.lsTransDT = dtServer; dbContext.LeadSources.Add(leadSource); leadSourceSave = leadSource; } List <Language> lstLanguages = dbContext.Languages.ToList(); #region MailOuts MailOut mailOut = new MailOut { mols = leadSourceSave.lsID, moCode = "WELCOME" }; #endregion #region Mail Outs Text y Invits Text lstLanguages.ForEach(la => { MailOutText mailOutText = new MailOutText { mtls = leadSourceSave.lsID, mtmoCode = "WLECOME", mtla = la.laID }; InvitationText invitationText = new InvitationText { itls = leadSourceSave.lsID, itla = la.laID, itRTF = "<No text Saved>" }; }); #endregion } #endregion #endregion #region Agencies lstAgeDel.ForEach(ag => { leadSourceSave.Agencies.Remove(leadSourceSave.Agencies.Where(agg => agg.agID == ag.agID).FirstOrDefault()); }); lstAgeAdd.ForEach(ag => { leadSourceSave.Agencies.Add(dbContext.Agencies.Where(agg => agg.agID == ag.agID).FirstOrDefault()); }); #endregion #region Locations dbContext.Locations.AsEnumerable().Where(lo => lstLocAdd.Any(loc => loc.loID == lo.loID)).ToList().ForEach(lo => { lo.lols = leadSourceSave.lsID; dbContext.Entry(lo).State = EntityState.Modified; }); dbContext.Locations.AsEnumerable().Where(lo => lstLocDel.Any(loc => loc.loID == lo.loID)).ToList().ForEach(lo => { lo.lols = null; dbContext.Entry(lo).State = EntityState.Modified; }); #endregion int nRes = dbContext.SaveChanges(); if (!blnUpdate) { dbContext.USP_OR_AddAccessAdministrator("LS"); dbContext.SaveChanges(); } transaction.Commit(); ObjectHelper.CopyProperties(leadSource, leadSourceSave, true); return nRes; } catch { transaction.Rollback(); return 0; } } } })); }