public int RemovePercentageRule(int percentageRuleId)
        {
            DistributionPercentage dp = Context.DistributionPercentages.SingleOrDefault(r => r.ID == percentageRuleId);
            int ruleId = dp.DistributionRuleId;

            Context.DistributionPercentages.Remove(dp);
            Context.SaveChanges();

            return(ruleId);
        }
예제 #2
0
        public ActionResult SubmitRule(ModuleDepositRules mdr)
        {
            DistributionRule dr = null;
            var percsToRemove   = new List <DistributionPercentage>();

            if (mdr.id == 0)
            {
                dr = new DistributionRule()
                {
                    Name = mdr.nome, UserId = User.Identity.Name, DistributionPercentages = new List <DistributionPercentage>()
                };

                foreach (var perc in mdr.regras)
                {
                    var dp = new DistributionPercentage()
                    {
                        FundID     = perc.fundo.id,
                        ReserveID  = perc.objetivo.id,
                        Percentage = perc.porcentagem / 100,
                    };
                    dr.DistributionPercentages.Add(dp);
                }

                using (var o = new FinancialOperations())
                    o.AddRule(dr);
            }
            else
            {
                using (var q = new FinancialQueries())
                {
                    dr = q.GetDistributionRule(mdr.id.Value);
                    for (int i = 0; i < dr.DistributionPercentages.Count; i++)
                    {
                        var currPerc = dr.DistributionPercentages.ElementAt(i);
                        if (mdr.regras.Any(r => r.fundo.id == currPerc.FundID && r.objetivo.id == currPerc.ReserveID) == false)
                        {
                            percsToRemove.Add(currPerc);
                        }
                    }

                    dr.Name = mdr.nome;
                    foreach (var perc in mdr.regras)
                    {
                        var dp = dr.DistributionPercentages.SingleOrDefault(p => p.FundID == perc.fundo.id && p.ReserveID == perc.objetivo.id);
                        if (dp == null)
                        {
                            dp = new DistributionPercentage()
                            {
                                FundID     = perc.fundo.id,
                                ReserveID  = perc.objetivo.id,
                                Percentage = perc.porcentagem / 100
                            };
                            dr.DistributionPercentages.Add(dp);
                        }
                        else
                        {
                            dp.FundID     = perc.fundo.id;
                            dp.ReserveID  = perc.objetivo.id;
                            dp.Percentage = perc.porcentagem;
                        }
                    }

                    using (var o = new FinancialOperations(q.Context))
                        o.UpdateRule(dr, percsToRemove);
                }
            }

            return(RulesPartial());
        }
 public void AddPercentageRule(DistributionPercentage percentageRule)
 {
     Context.DistributionPercentages.Add(percentageRule);
     Context.SaveChanges();
 }