コード例 #1
0
        public IActionResult Create(StreetItemViewModel model)
        {
            if (ModelState.IsValid)
            {
                var existingStreet = _context.Streets.FirstOrDefault(x => x.CityId == model.CityId && x.Name.ToLower() == model.Name.ToLower());
                if (existingStreet != null)
                {
                    ErrorMessage("Улица с таким именем уже существует!");
                    model.CityId = model.CityId;
                    return(View("Save", model));
                }

                var street = new Street
                {
                    Name   = model.Name,
                    CityId = model.CityId
                };
                _context.Streets.Add(street);
                _context.SaveChanges();

                var editUrl = Url.Action("Edit", new { id = street.Id });
                SuccessMessage($"<a href=\"{editUrl}\">Запись</a> была создана");
                return(RedirectToAction("Index"));
            }
            return(View("Save", model));
        }
コード例 #2
0
        // GET: Streets/Create
        public IActionResult Create()
        {
            var model = new StreetItemViewModel()
            {
                Name   = "",
                CityId = 0
            };

            return(View("Save", model));
        }
コード例 #3
0
        // GET: Streets
        public IActionResult Index(int page = 1, string name = "", int cityId = 0, char?letter = null)
        {
            int totalRows;
            int totalPages;
            IQueryable <Street> query = _context.Streets.Include(s => s.City).OrderBy(x => x.Name);

            var isEmployee = User.IsInRole(RoleNames.Employee);

            if (isEmployee)
            {
                cityId = CurrentUser?.City?.Id ?? 0;
            }

            if (cityId > 0)
            {
                query = query.Where(x => x.CityId == cityId);
            }


            if (!string.IsNullOrEmpty(name))
            {
                query = query.Where(x => x.Name.Contains(name));
            }

            if (letter.HasValue)
            {
                query = query.Where(x => x.Name.Length > 1 && Char.ToUpper(x.Name[0]) == Char.ToUpper(letter.Value));
            }


            var dbItems = query.PagedResult(page, 20, x => x.Name, false, out totalRows, out totalPages);

            var items = dbItems.ToList().Select(x => StreetItemViewModel.Create(x));

            ViewBag.CurrentPage = page;
            ViewBag.TotalPages  = totalPages;
            ViewBag.Letter      = letter;


            var model = new SteetMainModel
            {
                Items  = items.ToList(),
                Filter = new StreetFilterModel
                {
                    Name   = name,
                    CityId = cityId
                }
            };

            return(View(model));
        }
コード例 #4
0
        public IActionResult Edit(StreetItemViewModel model)
        {
            if (ModelState.IsValid)
            {
                Street street = _context.Streets.Include(x => x.City).Single(m => m.Id == model.Id);
                street.Name   = model.Name;
                street.CityId = model.CityId;
                _context.Update(street);
                _context.SaveChanges();

                var editUrl = Url.Action("Edit", new { id = model.Id });
                SuccessMessage($"<a href=\"{editUrl}\">Запись</a> была успешно изменена");

                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
コード例 #5
0
        // GET: Streets/Edit/5
        public IActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }

            Street street = _context.Streets.Include(x => x.City).Single(m => m.Id == id);

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

            var model = StreetItemViewModel.Create(street);

            return(View("Save", model));
        }