Пример #1
0
        private void SaveOfferToDatabase(Offer offer)
        {
            using (var ctx = new AssistantContext())
            {
                ctx.PackagedSolutions.Attach(offer.PackagedSolution);

                offer.Appliances = AppliancesInOffer.ToList();
                offer.Salaries   = SalariesInOffer.ToList();
                offer.Materials  = MaterialsInOffer.ToList();

                // Set existing unitprices to modified state
                foreach (var unit in offer.Appliances.Concat(offer.Salaries).Concat(offer.Materials).Where(u => u.Id != 0))
                {
                    ctx.Entry(unit).State = EntityState.Modified;
                }

                if (offer.Client.CreationDate == default(DateTime))
                {
                    offer.Client.CreationDate = DateTime.Now;
                }

                if (offer.CreationDate == default(DateTime))
                {
                    offer.CreationDate = DateTime.Now;
                }

                ctx.Entry(Offer).State = Offer.Id == 0 ? EntityState.Added : EntityState.Modified;

                ctx.SaveChanges();
            }
            IsDataSaved = true;
        }
Пример #2
0
 private void ClearCollections()
 {
     // Setting to a new collection instance as clearing the collection causes
     // the packaged solutions appliance list to be cleared in runtime (reference values). *Important
     AppliancesInOffer.Clear();
     MaterialsInOffer.Clear();
     SalariesInOffer.Clear();
 }
Пример #3
0
        public void LoadExistingOffer(int existingOfferId)
        {
            using (var ctx = new AssistantContext())
            {
                var existingOffer = ctx.Offers.Where(o => o.Id == existingOfferId)
                                    .Include(o => o.Appliances)
                                    .Include(o => o.PackagedSolution)
                                    .Include(o => o.Materials)
                                    .Include(o => o.Salaries)
                                    .FirstOrDefault();

                if (existingOffer == null)
                {
                    return;
                }

                Offer.PackagedSolution = existingOffer.PackagedSolution;

                // Load appliances
                foreach (var appliance in existingOffer.Appliances)
                {
                    AppliancesInOffer.Add(appliance);
                }

                // Load materials
                foreach (var material in existingOffer.Materials)
                {
                    MaterialsInOffer.Add(material);
                }

                // Load salaries
                foreach (var salary in existingOffer.Salaries)
                {
                    SalariesInOffer.Add(salary);
                }

                ArePackagedSolutionsVisible = false;
                IsComponentTabVisible       = true;
            }
        }