Exemplo n.º 1
0
 public void UpdateItem(Rate rate)
 {
     _rateService.Update(rate);
 }
Exemplo n.º 2
0
        public static int UpdateRate(Program program)
        {
            if (program == null)
            {
                throw new System.ArgumentNullException()
                      {
                          Source = "program"
                      };
            }

            using (CustomClearviewEntities ctx = new CustomClearviewEntities())
            {
                using (DbContextTransaction trans = ctx.Database.BeginTransaction())
                {
                    RateRepository repo = new RateRepository(ctx);

                    Program oldRate = repo.Find(p => p.ProgramId == program.ProgramId, t => t.ProgramVendors);

                    oldRate.ProgramId          = program.ProgramId;
                    oldRate.ProgramCode        = program.ProgramCode;
                    oldRate.ProgramName        = program.ProgramName;
                    oldRate.ProgramDescription = program.ProgramDescription;
                    oldRate.EffectiveStartDate = program.EffectiveStartDate;
                    oldRate.EffectiveEndDate   = program.EffectiveEndDate;
                    oldRate.Msf                         = program.Msf;
                    oldRate.Etf                         = program.Etf;
                    oldRate.Rate                        = program.Rate;
                    oldRate.PromotionalCode             = program.PromotionalCode;
                    oldRate.UnitOfMeasureId             = program.UnitOfMeasureId;
                    oldRate.Term                        = program.Term;
                    oldRate.UtilityTypeId               = program.UtilityTypeId;
                    oldRate.PremiseTypeId               = program.PremiseTypeId;
                    oldRate.State                       = program.State;
                    oldRate.UtilityId                   = program.UtilityId;
                    oldRate.AccountNumberTypeId         = program.AccountNumberTypeId;
                    oldRate.AccountNumberLength         = program.AccountNumberLength;
                    oldRate.AccountNumberFixedLength    = program.AccountNumberFixedLength;
                    oldRate.MeterNumber                 = program.MeterNumber;
                    oldRate.MeterNumberLength           = program.MeterNumberLength;
                    oldRate.ServiceReference            = program.ServiceReference;
                    oldRate.RescindBy                   = program.RescindBy;
                    oldRate.Hefpa                       = program.Hefpa;
                    oldRate.Vendor                      = program.Vendor;
                    oldRate.Market                      = program.Market;
                    oldRate.SalesChannel                = program.SalesChannel;
                    oldRate.RateVerbiage                = program.RateVerbiage;
                    oldRate.CancellationVerbiage        = program.CancellationVerbiage;
                    oldRate.RateVerbiageSpanish         = program.RateVerbiageSpanish;
                    oldRate.CancellationVerbiageSpanish = program.CancellationVerbiageSpanish;
                    oldRate.BrandId                     = program.BrandId;
                    oldRate.UpdatedBy                   = program.UpdatedBy;
                    oldRate.UpdatedDateTime             = program.UpdatedDateTime;
                    oldRate.CreditCheck                 = program.CreditCheck;

                    List <ProgramVendor> deleteList = new List <ProgramVendor>();
                    List <ProgramVendor> addList    = new List <ProgramVendor>();

                    foreach (ProgramVendor cpv in oldRate.ProgramVendors)
                    {
                        if (!program.ProgramVendors.Any(x => x.ProgramId == cpv.ProgramId && x.VendorId == cpv.VendorId))
                        {
                            deleteList.Add(cpv);
                        }
                    }

                    foreach (ProgramVendor pv in program.ProgramVendors)
                    {
                        if (!oldRate.ProgramVendors.Any(x => x.ProgramId == pv.ProgramId && x.VendorId == pv.VendorId))
                        {
                            pv.ProgramId = program.ProgramId;
                            addList.Add(pv);
                        }
                    }

                    foreach (ProgramVendor d in deleteList)
                    {
                        oldRate.ProgramVendors.Remove(d);
                    }

                    foreach (ProgramVendor a in addList)
                    {
                        oldRate.ProgramVendors.Add(a);
                    }

                    repo.Update(oldRate);

                    ctx.SaveChanges();
                    trans.Commit();
                }
            }

            return(program.ProgramId);
        }