Esempio n. 1
0
        public ActionResult Create(ContractCreateViewModel ContractCreateViewModel)
        {
            if (ModelState.IsValid)
            {
                //if Contract does not exist yet
                Guid contractId = Guid.NewGuid();
                ContractCreateViewModel.Contract.ContractID = contractId;
                ContractCreateViewModel.Contract.BeatID     = db.vBeats.FirstOrDefault().BeatID; //obsolete
                db.Contracts.InsertOnSubmit(ContractCreateViewModel.Contract);
                db.SubmitChanges();

                //add beats
                foreach (var beat in ContractCreateViewModel.SelectedBeats)
                {
                    ContractsBeat contractsBeat = new ContractsBeat();
                    contractsBeat.BeatID     = beat;
                    contractsBeat.ContractID = contractId;
                    db.ContractsBeats.InsertOnSubmit(contractsBeat);
                }
                db.SubmitChanges();

                return(RedirectToAction("Index"));
            }

            ViewBag.Contractors = db.Contractors.OrderBy(p => p.ContractCompanyName).ToList();

            return(View(ContractCreateViewModel));
        }
Esempio n. 2
0
        public ActionResult Edit(ContractCreateViewModel ContractCreateViewModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    db.Contracts.Attach(ContractCreateViewModel.Contract);
                    db.Refresh(RefreshMode.KeepCurrentValues, ContractCreateViewModel.Contract);
                    db.SubmitChanges();

                    //remove existing ones
                    var existingBeats = db.ContractsBeats.Where(p => p.ContractID == ContractCreateViewModel.Contract.ContractID);

                    foreach (var existingBeat in existingBeats)
                    {
                        db.ContractsBeats.DeleteOnSubmit(existingBeat);
                    }

                    db.SubmitChanges();

                    //re-add beats
                    foreach (var beat in ContractCreateViewModel.SelectedBeats)
                    {
                        ContractsBeat contractsBeat = new ContractsBeat();
                        contractsBeat.BeatID     = beat;
                        contractsBeat.ContractID = ContractCreateViewModel.Contract.ContractID;
                        db.ContractsBeats.InsertOnSubmit(contractsBeat);
                    }
                    db.SubmitChanges();

                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }

            ViewBag.Contractors = db.Contractors.OrderBy(p => p.ContractCompanyName).ToList();
            return(View(ContractCreateViewModel.Contract));
        }