public static bool Insert(Common.GroupPrice groupPrice, string agentRatio) { Business.GroupPrice groupPriceController = new Business.GroupPrice(); try { XDocument doc = new XDocument(); XElement root = new XElement("NewDataSet"); int countOperator = Helper.GetInt(Helper.ImportData(agentRatio, "resultCount")); for (int counterOpearor = 0; counterOpearor < countOperator; counterOpearor++) { XElement element = new XElement("Table"); element.Add(new XElement("AgentID", Helper.ImportData(agentRatio, ("AgentID" + counterOpearor)))); element.Add(new XElement("Ratio", Helper.ImportDecimalData(agentRatio, ("NewRatio" + counterOpearor)))); root.Add(element); } doc.Add(root); groupPrice.AgentRatio = doc.ToString(); return(groupPriceController.Insert(groupPrice) != Guid.Empty ? true : false); } catch (Exception ex) { throw ex; } }
public static void CompareAgentRatio(decimal basePrice, bool decreaseTax, string enterAgentRatio, Guid parentGuid) { try { decimal userRatio; Guid parentGroupGuid = User.GetGroupPriceGuid(parentGuid); Common.GroupPrice parentGroupPrice = LoadGroupPrice(parentGroupGuid); if (basePrice < parentGroupPrice.BasePrice) { throw new Exception(Language.GetString("BaseGroupPriceIsLow")); } Dictionary <Guid, decimal> parentAgentRatio = GetAgentRatio(parentGroupPrice.AgentRatio, true); Dictionary <Guid, decimal> userAgentRatio = GetAgentRatio(enterAgentRatio, false); foreach (KeyValuePair <Guid, decimal> parentRatio in parentAgentRatio) { userRatio = userAgentRatio.Keys.Contains(parentRatio.Key) ? userAgentRatio[parentRatio.Key] : 1; if (userRatio < Helper.GetDecimal(parentRatio.Value, 1)) { throw new Exception(Language.GetString("RatioNotValid")); } } } catch (Exception ex) { throw ex; } }
public static Common.GroupPrice LoadGroupPrice(Guid groupPriceGuid) { Business.GroupPrice groupPriceController = new Business.GroupPrice(); Common.GroupPrice groupPrice = new Common.GroupPrice(); groupPriceController.Load(groupPriceGuid, groupPrice); return(groupPrice); }
public DataTable gridAgentRatio_OnDataBind(string sortField, string searchFiletrs, string toolbarFilters, string userData, int pageNo, int pageSize, ref int resultCount, ref string customData) { string agentGuid = string.Empty; string agentTitle = string.Empty; decimal ratio; List <DataRow> lstAgents = Facade.SmsSenderAgent.GetUserAgents(Facade.SmsSenderAgent.GetFirstParentMainAdmin(UserGuid)).AsEnumerable().ToList(); DataTable dtAgentRatio = new DataTable(); dtAgentRatio.Columns.Add("Guid", typeof(Guid)); dtAgentRatio.Columns.Add("Price", typeof(string)); dtAgentRatio.Columns.Add("AgentID", typeof(string)); dtAgentRatio.Columns.Add("Agent", typeof(string)); dtAgentRatio.Columns.Add("Ratio", typeof(decimal)); Common.User user = Facade.User.LoadUser(UserGuid); Common.GroupPrice groupPrice = Facade.GroupPrice.LoadGroupPrice(user.PriceGroupGuid); string price = Helper.FormatDecimalForDisplay(groupPrice.BasePrice); var xelement = XElement.Parse(groupPrice.AgentRatio); List <XElement> lstOperatorElement = xelement.Elements("Table").ToList(); foreach (var item in lstOperatorElement) { agentGuid = item.Element("AgentID").Value; agentTitle = lstAgents.Where(agent => Helper.GetGuid(agent["Guid"]) == Helper.GetGuid(agentGuid)).First()["Name"].ToString(); ratio = Helper.GetDecimal(item.Element("Ratio").Value); dtAgentRatio.Rows.Add(Guid.NewGuid(), price, agentGuid, agentTitle, ratio); } return(dtAgentRatio); }
public DataTable gridAgentRatio_OnDataBind(string sortField, string searchFiletrs, string toolbarFilters, string userData, int pageNo, int pageSize, ref int resultCount, ref string customData) { string agentGuid = string.Empty; string agentTitle = string.Empty; decimal currentUserRatio; decimal groupRatio; XElement groupPriceRatioElement; firstParentMainAdmin = Facade.SmsSenderAgent.GetFirstParentMainAdmin(UserGuid); List <DataRow> lstAgents = Facade.SmsSenderAgent.GetUserAgents(firstParentMainAdmin).AsEnumerable().ToList(); DataTable dtAgentRatio = new DataTable(); dtAgentRatio.Columns.Add("Guid", typeof(Guid)); dtAgentRatio.Columns.Add("AgentID", typeof(string)); dtAgentRatio.Columns.Add("Agent", typeof(string)); dtAgentRatio.Columns.Add("CurrentRatio", typeof(decimal)); dtAgentRatio.Columns.Add("NewRatio", typeof(decimal)); Common.GroupPrice userGroupPrice = Facade.GroupPrice.LoadGroupPrice(Facade.User.GetGroupPriceGuid(UserGuid)); var xelement = XElement.Parse(userGroupPrice.AgentRatio); List <XElement> lstUserRatio = xelement.Elements("Table").ToList(); foreach (var item in lstAgents) { agentGuid = Helper.GetGuid(item["Guid"]).ToString(); agentTitle = item["Name"].ToString(); currentUserRatio = 1; groupRatio = 1; groupPriceRatioElement = lstUserRatio.Where(agent => Helper.GetGuid(agent.Element("AgentID").Value) == Helper.GetGuid(agentGuid)).FirstOrDefault(); if (groupPriceRatioElement != null) { currentUserRatio = Helper.GetDecimal(groupPriceRatioElement.Element("Ratio").Value, 1); groupRatio = currentUserRatio; } if (ActionType == "edit") { Common.GroupPrice groupPrice = Facade.GroupPrice.LoadGroupPrice(GroupPriceGuid); xelement = XElement.Parse(groupPrice.AgentRatio); List <XElement> lstOperatorElement = xelement.Elements("Table").ToList(); groupPriceRatioElement = lstOperatorElement.Where(agent => Helper.GetGuid(agent.Element("AgentID").Value) == Helper.GetGuid(agentGuid)).FirstOrDefault(); if (groupPriceRatioElement != null) { groupRatio = Helper.GetDecimal(groupPriceRatioElement.Element("Ratio").Value, 1); } } dtAgentRatio.Rows.Add(Guid.NewGuid(), agentGuid, agentTitle, currentUserRatio, groupRatio); } return(dtAgentRatio); }
public bool UpdateGroupPrice(Common.GroupPrice groupPrice) { return(base.ExecuteSPCommand("UpdateGroupPrice", "@Guid", groupPrice.GroupPriceGuid, "@Title", groupPrice.Title, "@MinimumMessage", groupPrice.MinimumMessage, "@MaximumMessage", groupPrice.MaximumMessage, "@BasePrice", groupPrice.BasePrice, "@DecreaseTax", groupPrice.DecreaseTax, "@AgentRatio", groupPrice.AgentRatio, "@IsPrivate", groupPrice.IsPrivate, "@IsDefault", groupPrice.IsDefault)); }
private void InitializePage() { btnSave.Text = Language.GetString(btnSave.Text); btnSave.Attributes["onclick"] = "return validateGroupPrice();"; if (ActionType == "edit") { Common.GroupPrice groupPrice = Facade.GroupPrice.LoadGroupPrice(GroupPriceGuid); chbIsPrivate.Checked = groupPrice.IsPrivate; chbIsPrivate.Enabled = groupPrice.IsPrivate ? false : true; chbDefaultGroupPrice.Checked = groupPrice.IsDefault; chbDecreaseTax.Checked = groupPrice.DecreaseTax; chbIsPrivate.Checked = groupPrice.IsPrivate; txtTitle.Text = groupPrice.Title; txtMinimumMessage.Text = Helper.FormatDecimalForDisplay(groupPrice.MinimumMessage); txtMaximumMessage.Text = Helper.FormatDecimalForDisplay(groupPrice.MaximumMessage); txtBasePrice.Text = Helper.FormatDecimalForDisplay(groupPrice.BasePrice); } }
public static Dictionary <Guid, decimal> GetAgentRatio(Guid UserGuid) { Dictionary <Guid, decimal> agentRatio = new Dictionary <Guid, decimal>(); Common.User user = User.LoadUser(UserGuid); Common.GroupPrice groupPrice = GroupPrice.LoadGroupPrice(user.PriceGroupGuid); if (groupPrice.AgentRatio != string.Empty) { var xelement = XElement.Parse(groupPrice.AgentRatio); List <XElement> lstAgentElement = xelement.Elements("Table").ToList(); foreach (var item in lstAgentElement) { agentRatio.Add(Helper.GetGuid(item.Element("AgentID").Value), Helper.GetDecimal(item.Element("Ratio").Value)); } } return(agentRatio); }
public static bool UpdateGroupPrice(Common.GroupPrice groupPrice, string agentRatio, bool isMainAdmin) { Business.GroupPrice groupPriceController = new Business.GroupPrice(); decimal currentRatio; decimal newRatio; try { XDocument doc = new XDocument(); XElement element; XElement root = new XElement("NewDataSet"); int countOperator = Helper.GetInt(Helper.ImportData(agentRatio, "resultCount")); for (int counter = 0; counter < countOperator; counter++) { element = new XElement("Table"); element.Add(new XElement("AgentID", Helper.ImportData(agentRatio, ("AgentID" + counter)))); currentRatio = Helper.ImportDecimalData(agentRatio, ("CurrentRatio" + counter)); newRatio = Helper.ImportDecimalData(agentRatio, ("NewRatio" + counter)); if (newRatio < currentRatio && !isMainAdmin) { throw new Exception(Language.GetString("RatioNotValid")); } element.Add(new XElement("Ratio", Helper.ImportDecimalData(agentRatio, ("NewRatio" + counter)))); root.Add(element); } doc.Add(root); groupPrice.AgentRatio = doc.ToString(); return(groupPriceController.UpdateGroupPrice(groupPrice)); } catch (Exception ex) { throw ex; } }
protected void btnSave_Click(object sender, EventArgs e) { Common.GroupPrice groupPrice = new Common.GroupPrice(); string agentRatio = string.Empty; try { groupPrice.Title = txtTitle.Text; groupPrice.IsPrivate = chbIsPrivate.Checked; groupPrice.IsDefault = groupPrice.IsPrivate ? false : chbDefaultGroupPrice.Checked; groupPrice.MinimumMessage = groupPrice.IsPrivate ? 0 : Helper.GetLong(txtMinimumMessage.Text); groupPrice.MaximumMessage = groupPrice.IsPrivate ? 0 : Helper.GetLong(txtMaximumMessage.Text); groupPrice.GroupPriceGuid = GroupPriceGuid; groupPrice.BasePrice = Helper.GetDecimal(txtBasePrice.Text); groupPrice.DecreaseTax = chbDecreaseTax.Checked; groupPrice.AgentRatio = string.Empty; groupPrice.UserGuid = UserGuid; groupPrice.CreateDate = DateTime.Now; if (!Helper.CheckDataConditions(hdnAgentRatio.Value).IsEmpty) { agentRatio = hdnAgentRatio.Value; } if (!IsMainAdmin) { Facade.GroupPrice.CompareAgentRatio(groupPrice.BasePrice, chbDecreaseTax.Checked, agentRatio, ParentGuid); } switch (ActionType) { case "edit": if (groupPrice.HasError) { throw new Exception(groupPrice.ErrorMessage); } if (!groupPrice.IsPrivate) { if (groupPrice.MinimumMessage >= groupPrice.MaximumMessage) { throw new Exception(Language.GetString("InvalidRange")); } if (!Facade.GroupPrice.CheckExistRange(UserGuid, GroupPriceGuid, groupPrice.MinimumMessage, groupPrice.MaximumMessage)) { throw new Exception(Language.GetString("DuplicateRangeOfGroupPrice")); } } if (!Facade.GroupPrice.UpdateGroupPrice(groupPrice, agentRatio, IsMainAdmin)) { throw new Exception(Language.GetString("ErrorRecord")); } break; case "insert": if (groupPrice.HasError) { throw new Exception(groupPrice.ErrorMessage); } if (!groupPrice.IsPrivate) { if (groupPrice.MinimumMessage >= groupPrice.MaximumMessage) { throw new Exception(Language.GetString("InvalidRange")); } if (!Facade.GroupPrice.CheckExistRange(UserGuid, Guid.Empty, groupPrice.MinimumMessage, groupPrice.MaximumMessage)) { throw new Exception(Language.GetString("DuplicateRangeOfGroupPrice")); } } if (!Facade.GroupPrice.Insert(groupPrice, agentRatio)) { throw new Exception(Language.GetString("ErrorRecord")); } break; } Response.Redirect(string.Format("/PageLoader.aspx?c={0}", Helper.Encrypt((int)Arad.SMS.Gateway.Business.UserControls.UI_GroupPrices_GroupPrice, Session))); } catch (Exception ex) { ShowMessageBox(ex.Message, string.Empty, "danger"); } }