예제 #1
0
        private void InitializePage()
        {
            btnSave.Attributes["onclick"] = "return submitValidation();";
            btnSave.Text   = Language.GetString(btnSave.Text);
            btnCancel.Text = Language.GetString(btnCancel.Text);

            drpNumber.DataSource     = Facade.PrivateNumber.GetUserPrivateNumbersForReceive(UserGuid);
            drpNumber.DataTextField  = "Number";
            drpNumber.DataValueField = "Guid";
            drpNumber.DataBind();

            foreach (SmsFilterSenderNumber senderNumber in Enum.GetValues(typeof(SmsFilterSenderNumber)))
            {
                drpTypeConditionSender.Items.Add(new ListItem(Language.GetString(senderNumber.ToString()), ((int)senderNumber).ToString()));
            }
            drpTypeConditionSender.Items.Insert(0, new ListItem(string.Empty, string.Empty));

            foreach (SmsFilterConditions condition in Enum.GetValues(typeof(SmsFilterConditions)))
            {
                drpConditions.Items.Add(new ListItem(Language.GetString(condition.ToString()), ((int)condition).ToString()));
            }

            foreach (SmsFilterOperations operation in Enum.GetValues(typeof(SmsFilterOperations)))
            {
                drpOperations.Items.Add(new ListItem(Language.GetString(operation.ToString()), ((int)operation).ToString()));
            }
            drpOperations.Items.Insert(0, new ListItem(string.Empty, string.Empty));

            drpSenderNumber.DataSource     = Facade.PrivateNumber.GetUserPrivateNumbersForSend(UserGuid);
            drpSenderNumber.DataTextField  = "Number";
            drpSenderNumber.DataValueField = "Guid";
            drpSenderNumber.DataBind();
            drpSenderNumber.Items.Insert(0, new ListItem(Language.GetString("SenderNumber"), string.Empty));

            DataTable dtUserFormats = Facade.SmsFormat.GetUserSmsFormats(UserGuid);

            drpAccpetFormat.DataSource     = dtUserFormats;
            drpAccpetFormat.DataTextField  = "FormatName";
            drpAccpetFormat.DataValueField = "FormatGuid";
            drpAccpetFormat.DataBind();
            drpAccpetFormat.Items.Insert(0, new ListItem(Language.GetString("UseFormatIfMatching"), string.Empty));

            drpRejectFormat.DataSource     = dtUserFormats;
            drpRejectFormat.DataTextField  = "FormatName";
            drpRejectFormat.DataValueField = "FormatGuid";
            drpRejectFormat.DataBind();
            drpRejectFormat.Items.Insert(0, new ListItem(Language.GetString("UseFormatIncompatibility"), string.Empty));

            int resultCount = 0;

            drpTrafficRelay.DataSource     = Facade.TrafficRelay.GetPagedTrafficRelays(UserGuid, "CreateDate", 0, 0, ref resultCount);
            drpTrafficRelay.DataTextField  = "Url";
            drpTrafficRelay.DataValueField = "Guid";
            drpTrafficRelay.DataBind();

            dtpStartDate.Date = DateManager.GetSolarDate(DateTime.Now);
            dtpStartDate.Time = DateTime.Now.TimeOfDay.ToString();

            dtpEndDate.Date = DateManager.GetSolarDate(DateTime.Now);
            dtpEndDate.Time = DateTime.Now.TimeOfDay.ToString();

            if (ActionType == "edit")
            {
                Common.SmsParser           smsParser = Facade.SmsParser.LoadSmsParser(SmsParserGuid);
                ParserFormulaSerialization parserFormulaSerialization = new ParserFormulaSerialization();

                drpNumber.SelectedValue = smsParser.PrivateNumberGuid.ToString();
                txtTitle.Text           = smsParser.Title;
                dtpStartDate.Date       = DateManager.GetSolarDate(smsParser.FromDateTime);
                dtpStartDate.Time       = smsParser.FromDateTime.TimeOfDay.ToString();
                dtpEndDate.Date         = DateManager.GetSolarDate(smsParser.ToDateTime);
                dtpEndDate.Time         = smsParser.ToDateTime.TimeOfDay.ToString();
                hdnScopeGuid.Value      = smsParser.Scope.ToString();
                drpTypeConditionSender.SelectedValue = smsParser.TypeConditionSender.ToString();
                txtConditionSender.Text = smsParser.ConditionSender;

                DataTable dataTableParserFormulas = Facade.ParserFormula.GetParserFormulas(SmsParserGuid);
                if (dataTableParserFormulas.Rows.Count > 0)
                {
                    DataRow row = dataTableParserFormulas.Rows[0];
                    drpConditions.SelectedValue = row["Condition"].ToString();
                    txtCondition.Text           = row["Key"].ToString();

                    string reactionExtension = row["ReactionExtention"].ToString();
                    parserFormulaSerialization  = (ParserFormulaSerialization)SerializationTools.DeserializeXml(reactionExtension, typeof(ParserFormulaSerialization));
                    drpOperations.SelectedValue = parserFormulaSerialization.Condition.ToString();
                    switch (parserFormulaSerialization.Condition)
                    {
                    case (int)SmsFilterOperations.AddToGroup:
                    case (int)SmsFilterOperations.RemoveFromGroup:
                        hdnOperationGroupGuid.Value   = parserFormulaSerialization.ReferenceGuid.ToString();
                        drpSenderNumber.SelectedValue = parserFormulaSerialization.Sender.ToString();
                        txtSmsBody.Text = parserFormulaSerialization.Text;
                        txtUrl.Text     = parserFormulaSerialization.VasURL;
                        break;

                    case (int)SmsFilterOperations.SendSmsToGroup:
                        txtSmsBody.Text = parserFormulaSerialization.Text;
                        drpSenderNumber.SelectedValue = parserFormulaSerialization.Sender.ToString();
                        hdnGroupGuid.Value            = parserFormulaSerialization.ReferenceGuid.ToString();
                        break;

                    case (int)SmsFilterOperations.SendSmsToSender:
                        txtSmsBody.Text = parserFormulaSerialization.Text;
                        drpSenderNumber.SelectedValue = parserFormulaSerialization.Sender.ToString();
                        break;

                    case (int)SmsFilterOperations.TransferToUrl:
                        drpTrafficRelay.SelectedValue = parserFormulaSerialization.ReferenceGuid.ToString();
                        break;

                    case (int)SmsFilterOperations.TransferToMobile:
                        txtOpration.Text = parserFormulaSerialization.Text;
                        drpSenderNumber.SelectedValue = parserFormulaSerialization.Sender.ToString();
                        break;

                    case (int)SmsFilterOperations.SendSmsFromFormat:
                        drpRejectFormat.SelectedValue = parserFormulaSerialization.RejectFormatGuid.ToString();
                        drpAccpetFormat.SelectedValue = parserFormulaSerialization.AcceptFormatGuid.ToString();
                        drpSenderNumber.SelectedValue = parserFormulaSerialization.Sender.ToString();
                        break;

                    case (int)SmsFilterOperations.ForwardSmsToGroup:
                        drpSenderNumber.SelectedValue = parserFormulaSerialization.Sender.ToString();
                        hdnOperationGroupGuid.Value   = parserFormulaSerialization.ReferenceGuid.ToString();
                        break;

                    default:
                        txtOpration.Text = parserFormulaSerialization.Text;
                        break;
                    }
                }

                ClientSideScript = "setOption();setCondition('edit');";
            }
        }
예제 #2
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                Common.SmsParser           smsParser     = new Common.SmsParser();
                Common.ParserFormula       parserFormula = new Common.ParserFormula();
                ParserFormulaSerialization parserFormulaSerialization = new ParserFormulaSerialization();

                smsParser.SmsParserGuid     = SmsParserGuid;
                smsParser.PrivateNumberGuid = Helper.GetGuid(drpNumber.SelectedValue);
                smsParser.Title             = txtTitle.Text;
                smsParser.Type                = (int)SmsParserType.Filter;
                smsParser.CreateDate          = DateTime.Now;
                smsParser.FromDateTime        = DateManager.GetChristianDateTimeForDB(dtpStartDate.FullDateTime);
                smsParser.ToDateTime          = DateManager.GetChristianDateTimeForDB(dtpEndDate.FullDateTime);
                smsParser.Scope               = Helper.GetGuid(hdnScopeGuid.Value.Trim('\''));
                smsParser.UserGuid            = UserGuid;
                smsParser.ConditionSender     = Helper.GetLocalMobileNumber(txtConditionSender.Text);
                smsParser.TypeConditionSender = Helper.GetInt(drpTypeConditionSender.SelectedValue);
                parserFormula.Condition       = Helper.GetInt(drpConditions.SelectedValue);
                switch (parserFormula.Condition)
                {
                case (int)SmsFilterConditions.EqualWithPhoneBookField:
                    parserFormula.Key = string.Format("{0}/{1}", hdnConditionGroupGuid.Value, hdnConditionField.Value);
                    break;

                default:
                    parserFormula.Key = txtCondition.Text;
                    break;
                }

                switch (parserFormula.Condition)
                {
                case (int)SmsFilterConditions.NationalCode:
                    break;

                default:
                    if (Facade.SmsParser.IsDuplicateSmsParserKey(SmsParserGuid, smsParser.PrivateNumberGuid, parserFormula.Key))
                    {
                        throw new Exception(Language.GetString("DuplicateKeyword"));
                    }
                    break;
                }

                parserFormulaSerialization.Condition = Helper.GetInt(drpOperations.SelectedValue);
                switch (parserFormulaSerialization.Condition)
                {
                case (int)SmsFilterOperations.AddToGroup:
                case (int)SmsFilterOperations.RemoveFromGroup:
                    parserFormulaSerialization.ReferenceGuid = Helper.GetGuid(hdnOperationGroupGuid.Value.Trim('\''));
                    parserFormulaSerialization.Text          = txtSmsBody.Text;
                    parserFormulaSerialization.Sender        = Helper.GetGuid(drpSenderNumber.SelectedValue);
                    parserFormulaSerialization.VasURL        = txtUrl.Text;
                    break;

                case (int)SmsFilterOperations.SendSmsToGroup:
                    parserFormulaSerialization.Sender        = Helper.GetGuid(drpSenderNumber.SelectedValue);
                    parserFormulaSerialization.Text          = txtSmsBody.Text;
                    parserFormulaSerialization.ReferenceGuid = Helper.GetGuid(hdnGroupGuid.Value.Trim('\''));
                    break;

                case (int)SmsFilterOperations.ForwardSmsToGroup:
                    parserFormulaSerialization.Sender        = Helper.GetGuid(drpSenderNumber.SelectedValue);
                    parserFormulaSerialization.ReferenceGuid = Helper.GetGuid(hdnOperationGroupGuid.Value.Trim('\''));
                    break;

                case (int)SmsFilterOperations.SendSmsToSender:
                    parserFormulaSerialization.Sender        = Helper.GetGuid(drpSenderNumber.SelectedValue);
                    parserFormulaSerialization.Text          = txtSmsBody.Text;
                    parserFormulaSerialization.ReferenceGuid = Guid.Empty;
                    break;

                case (int)SmsFilterOperations.TransferToUrl:
                    parserFormulaSerialization.ReferenceGuid = Helper.GetGuid(drpTrafficRelay.SelectedValue);
                    break;

                case (int)SmsFilterOperations.TransferToMobile:
                    parserFormulaSerialization.Sender = Helper.GetGuid(drpSenderNumber.SelectedValue);
                    parserFormulaSerialization.Text   = txtOpration.Text;
                    break;

                case (int)SmsFilterOperations.SendSmsFromFormat:
                    parserFormulaSerialization.Sender           = Helper.GetGuid(drpSenderNumber.SelectedValue);
                    parserFormulaSerialization.AcceptFormatGuid = Helper.GetGuid(drpAccpetFormat.SelectedValue);
                    parserFormulaSerialization.RejectFormatGuid = Helper.GetGuid(drpRejectFormat.SelectedValue);
                    break;

                default:
                    parserFormulaSerialization.Text = txtOpration.Text;
                    break;
                }
                parserFormula.ReactionExtention = SerializationTools.SerializeToXml(parserFormulaSerialization, parserFormulaSerialization.GetType());

                if (smsParser.HasError)
                {
                    throw new Exception(smsParser.ErrorMessage);
                }

                switch (ActionType)
                {
                case "insert":
                    if (!Facade.SmsParser.InsertFilter(smsParser, parserFormula))
                    {
                        throw new Exception(Language.GetString("ErrorRecord"));
                    }

                    break;

                case "edit":
                    if (!Facade.SmsParser.UpdateFilter(smsParser, parserFormula))
                    {
                        throw new Exception(Language.GetString("ErrorRecord"));
                    }
                    break;
                }

                Response.Redirect(string.Format("/PageLoader.aspx?c={0}", Helper.Encrypt((int)UserControls.UI_SmsParsers_Filters_SmsFilter, Session)));
            }
            catch (Exception ex)
            {
                ShowMessageBox(ex.Message, string.Empty, "danger");
            }
        }