public async Task <IActionResult> Edit(Guid id, EditOfficeViewModel model)
        {
            if (id != model.Id)
            {
                return(NotFound());
            }

            if (await _dal.OfficeNameExistsAsync(model.Name, id))
            {
                ModelState.AddModelError("Name", "The name already exists.");
            }

            string msg;

            if (ModelState.IsValid)
            {
                var item = new Office()
                {
                    Id           = model.Id,
                    Name         = model.Name,
                    Active       = model.Active,
                    MasterUserId = model.MasterUserId
                };

                _cache.Remove(CacheKeys.OfficesSelectList);
                _cache.Remove(CacheKeys.OfficesSelectListRequireMaster);

                try
                {
                    _context.Update(item);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!(await _dal.OfficeExists(model.Id)))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                msg = string.Format("The {0} was updated.", objectDisplayName);
                TempData.SaveAlertForSession(msg, AlertStatus.Success, "Success");

                return(RedirectToAction("Details", new { id = model.Id }));
            }

            msg = string.Format("The {0} was not updated. Please fix the errors shown below.", objectDisplayName);
            ViewData["AlertMessage"] = new AlertViewModel(msg, AlertStatus.Error, "Error");

            model.UsersSelectList = await _dal.GetAllUsersSelectListAsync();

            return(View(model));
        }
示例#2
0
        // GET: Administration/Offices/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }

            Office office = this.data.Offices.Find(id);

            if (office == null)
            {
                return(HttpNotFound());
            }

            EditOfficeViewModel model = new EditOfficeViewModel();

            Mapper.Map(office, model);
            model.Managers = this.GetManagers();
            return(View(model));
        }
示例#3
0
        public ActionResult Edit(EditOfficeViewModel model)
        {
            if (ModelState.IsValid)
            {
                Office office = this.data.Offices.Find(model.OfficeId);
                if (office == null)
                {
                    this.TempData["ErrorMessage"] = "Invalid office id";
                }

                ApplicationUser manager = this.data.Users.All()
                                          .FirstOrDefault(m => m.Id == model.ManagerId);
                if (manager != null)
                {
                    var userManager = this.HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
                    if (!userManager.IsInRole(manager.Id, "Manager"))
                    {
                        this.TempData["ErrorMessage"] = "Invalid manager";
                    }
                }
                else
                {
                    this.TempData["ErrorMessage"] = "Invalid manager";
                }

                if (this.TempData["ErrorMessage"] == null)
                {
                    Mapper.Map(model, office);
                    this.data.Offices.Update(office);
                    this.data.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }

            model.Managers = this.GetManagers();
            return(View(model));
        }
        public async Task <IActionResult> Edit(Guid id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var item = await _context.LookupOffices.AsNoTracking()
                       .Include(e => e.MasterUser)
                       .Where(m => m.Id == id)
                       .SingleOrDefaultAsync();

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

            var model = new EditOfficeViewModel(item)
            {
                UsersSelectList = await _dal.GetAllUsersSelectListAsync()
            };

            return(View(model));
        }