Пример #1
0
        /// <summary>
        /// Guarda losa cambios de la edición
        /// </summary>
        ///<history>
        ///[jorcanche] created 12/05/2016
        ///</history>
        private async void btnSave_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                StaStart("Save Invit...");
                EnableControls(true, false, true, false);
                rtbFooter.IsReadOnly = rtbHeader.IsReadOnly = true;

                #region Carga de Header y Footer

                //Se almacena en una variabele los RTF´s
                var header = UIRichTextBoxHelper.getRTFFromRichTextBox(ref rtbHeader);
                var footer = UIRichTextBoxHelper.getRTFFromRichTextBox(ref rtbFooter);
                StaEnd();

                //Si es nula la entidad quiere decir que no existe en la base de datos así que hay que agrgarlo
                //de lo contrario se modifica
                if (_rtfInvitation == null)
                {
                    _rtfInvitation = new InvitationText
                    {
                        itls        = cmbLeadSource.SelectedValue.ToString(),
                        itla        = cmbLanguage.SelectedValue.ToString(),
                        itRTFFooter = footer,
                        itRTFHeader = header
                    };
                    await BREntities.OperationEntity(_rtfInvitation, EnumMode.Add);
                }
                else
                {
                    //Si almenos un RichTexBox se modifico entonces se hace la actualización
                    if (_rtfInvitation.itRTFFooter == footer && _rtfInvitation.itRTFHeader == header)
                    {
                        return;
                    }
                    _rtfInvitation.itRTFFooter = footer;
                    _rtfInvitation.itRTFHeader = header;
                    await BREntities.OperationEntity(_rtfInvitation, EnumMode.Edit);
                }
                StaEnd();

                #endregion
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
        }
Пример #2
0
        /// <summary>
        /// Carga los RTF´s de Header y Fotter segun el Lead Source o el lenguage que se seleccione
        /// </summary>
        ///<history>
        ///[jorcanche] created 12/05/2016
        ///</history>
        private async void LoadRTF()
        {
            if (cmbLanguage.SelectedIndex == -1 || cmbLeadSource.SelectedIndex == -1)
            {
                return;
            }
            rtbHeader.Document.Blocks.Clear();
            rtbFooter.Document.Blocks.Clear();
            _rtfInvitation = await BRInvitation.GetInvitationFooterHeader(cmbLeadSource.SelectedValue.ToString(), cmbLanguage.SelectedValue.ToString());

            if (_rtfInvitation == null)
            {
                return;
            }
            UIRichTextBoxHelper.LoadRTF(ref rtbHeader, _rtfInvitation.itRTFHeader);
            UIRichTextBoxHelper.LoadRTF(ref rtbFooter, _rtfInvitation.itRTFFooter);
        }
Пример #3
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;
                        }
                    }
                }
            }));
        }