Esempio n. 1
0
        /// <summary>
        /// Elimina un MailOut de MailOuts y MailOutTexts
        /// </summary>
        /// <param name="mo">MailOut</param>
        /// <returns> Numero de registros afectados </returns>
        /// <history>
        /// [erosado] 20/04/2016  Created
        /// [erosado] 06/07/2016  Modified. Se agregó Async
        /// </history>
        public async static Task <int> DeleteMailOut(MailOut mo)
        {
            int result = 0;
            await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    using (var transaction = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
                    {
                        try
                        {
                            //Eliminamos el MailOut
                            dbContext.Entry(mo).State = System.Data.Entity.EntityState.Deleted;
                            //Obtenemos todos los MailOutText que correspondan al MailOut Que vamos a eliminar
                            List <MailOutText> motlst = (from x in dbContext.MailOutTexts where x.mtls == mo.mols && x.mtmoCode == mo.moCode select x).ToList();
                            //Eliminamos cada uno de los MailOutTexts
                            motlst.ForEach(x => dbContext.Entry(x).State = System.Data.Entity.EntityState.Deleted);
                            result = dbContext.SaveChanges();
                            transaction.Commit();
                        }
                        catch
                        {
                            transaction.Rollback();
                            throw;
                        }
                    }
                }
            });

            return(result);
        }
Esempio n. 2
0
 /// <summary>
 /// Evento que se ejecuta se selecciona un MailOut
 /// </summary>
 /// <history>
 /// [erosado] 19/04/2016  Created
 /// </history>
 private void lsbxMailOuts_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (lsbxMailOuts.SelectedValue != null)
     {
         _selectedMailOut   = lsbxMailOuts.SelectedItem as MailOut;
         layout.DataContext = _selectedMailOut;
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Actualiza la informacion de un MailOut
 /// </summary>
 /// <param name="mo">MailOut</param>
 /// <returns>Registros Afectados</returns>
 /// <history>
 /// [erosado] 20/04/2016  Created
 /// [erosado] 06/07/2016  Modified. Se agregó Async.
 /// [erosado] 12/08/2016  Modified. Se agregó Try - Catch
 /// </history>
 public async static Task <int> UpdateMailOut(MailOut mo)
 {
     try
     {
         return(await Task.Run(() =>
         {
             using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
             {
                 dbContext.Entry(mo).State = System.Data.Entity.EntityState.Modified;
                 return dbContext.SaveChanges();
             }
         }));
     }
     catch (Exception)
     {
         throw;
     }
 }
Esempio n. 4
0
        /// <summary>
        /// Elimina los registros del MailOut Seleccionado
        /// </summary>
        /// <param name="mo">MailOut</param>
        /// <history>
        /// [erosado] 20/04/2016 Created
        /// </history>
        public async void DoDeleteMailOut(MailOut mo)
        {
            try
            {
                var data = await BRMailOuts.DeleteMailOut(mo);

                if (data > 0)
                {
                    UIHelper.ShowMessage("Delete MailOut successfully", MessageBoxImage.Information, "Mail Outs Configuration");
                    EditModeOff();
                    cbxLeadSource_SelectionChanged(this, null);
                }
                StaEnd();
            }
            catch (Exception ex)
            {
                StaEnd();
                UIHelper.ShowMessage(ex);
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Actualiza la información de un MailOut
        /// </summary>
        /// <param name="mo">MailOut</param>
        /// <history>
        /// [erosado] 20/04/2016  Created.
        /// [erosado] 12/08/2016  Modified. Cuando se guarda la informacion del MailOut se mantiene seleccionado en la lista lsbxMailOuts.
        /// </history>
        public async void DoUpdateMailOut(MailOut mo)
        {
            try
            {
                var data = await BRMailOuts.UpdateMailOut(mo);

                if (data > 0)
                {
                    UIHelper.ShowMessage("Data saved successfully", MessageBoxImage.Information, "Mail Outs Configuration");
                    EditModeOff();
                    DoGetMailOuts(_lsbyUser.lsID, mo.moCode);
                }
                StaEnd();
            }
            catch (Exception ex)
            {
                StaEnd();
                UIHelper.ShowMessage(ex);
            }
        }
Esempio n. 6
0
        /// <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;
                        }
                    }
                }
            }));
        }