Beispiel #1
0
        // GET: Consumer/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            //Check if user logged in:
            if (HttpContext.Session.GetString("Username") == null)
            {
                return(Redirect("/Home/Login"));
            }

            if (id == null)
            {
                return(NotFound());
            }

            // Find consumer
            Consumer consumerToEdit = await _context.Consumers.SingleOrDefaultAsync(m => m.ID == id);

            if (consumerToEdit == null)
            {
                return(NotFound());
            }

            EditConsumerViewModel editConsumerVM = new EditConsumerViewModel
            {
                ID        = consumerToEdit.ID,
                LastName  = consumerToEdit.LastName,
                FirstName = consumerToEdit.FirstName,
                DOB       = consumerToEdit.DOB,
                Active    = consumerToEdit.Active,
                EndDate   = consumerToEdit.EndDate
            };

            return(View(editConsumerVM));
        }
Beispiel #2
0
        // METHODS

        public void SetShredDate(EditConsumerViewModel consumerVM)
        {
            if (consumerVM.EndDate == null)
            {
                this.ShredDate = null;
            }
            if (consumerVM.EndDate.HasValue)
            {
                this.ShredDate = consumerVM.EndDate.Value.AddYears(7).AddDays(1);
                this.Status    = Models.Status.Inactive;
            }
        }
Beispiel #3
0
        public async Task <IActionResult> Edit(EditConsumerViewModel editConsumerVM)
        {
            if (ModelState.IsValid)
            {
                //Get consumer
                Consumer consumerToEdit = _context.Consumers.Single(c => c.ID == editConsumerVM.ID);
                // Get associated files
                consumerToEdit.Files = _context.Files.Where(f => f.ConsumerID == consumerToEdit.ID).ToList();

                consumerToEdit.LastName  = editConsumerVM.LastName;
                consumerToEdit.FirstName = editConsumerVM.FirstName;
                consumerToEdit.DOB       = editConsumerVM.DOB;

                // ONLY when a consumer's active state is changed (so it won't affect file statuses otherwise):
                if (editConsumerVM.Active != consumerToEdit.Active)
                {
                    // If consumer becomes inactive, add EndDate
                    if (editConsumerVM.Active == false)
                    {
                        consumerToEdit.Active  = false;
                        consumerToEdit.EndDate = editConsumerVM.EndDate;
                        if (consumerToEdit.Files.Count != 0)
                        {
                            // Change status of files to "Inactive" and set file ShredDate
                            foreach (File file in consumerToEdit.Files)
                            {
                                file.SetShredDate(editConsumerVM);
                                _context.Update(file);
                            }
                        }
                    }

                    // If inactive consumer becomes active, wipe EndDate and change status of files to "OK"
                    if (editConsumerVM.Active == true)
                    {
                        consumerToEdit.Active  = true;
                        consumerToEdit.EndDate = null;
                        editConsumerVM.EndDate = null;
                        if (consumerToEdit.Files.Count > 0)
                        {
                            foreach (File file in consumerToEdit.Files)
                            {
                                file.Status = Status.OK;
                                file.SetShredDate(editConsumerVM);
                                _context.Update(file);
                            }
                        }
                    }
                }

                // If the active state remains unchanged, but an inactive consumer's EndDate is changed:
                if (editConsumerVM.EndDate != consumerToEdit.EndDate)
                {
                    // NOT that we'll allow it to be wiped...
                    if (editConsumerVM.EndDate == null && editConsumerVM.Active == false)
                    {
                        consumerToEdit.EndDate = DateTime.Now;
                    }
                    else   // Otherwise, set the change to the consumer
                    {
                        consumerToEdit.EndDate = editConsumerVM.EndDate;
                    }
                    // And update their files' ShredDate
                    if (consumerToEdit.Files != null)
                    {
                        foreach (File file in consumerToEdit.Files)
                        {
                            file.SetShredDate(editConsumerVM);
                            _context.Update(file);
                        }
                    }
                }

                _context.Update(consumerToEdit);
                await _context.SaveChangesAsync();

                return(Redirect("/Consumers/Index"));
            }
            ;

            return(View(editConsumerVM));
        }