public ActionResult Edit(Region model)
        {
            try
            {
                var regionsRepository = new RegionsRepository();

                regionsRepository.Update(model);

                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                return View();
            }
        }
        public ActionResult ChangeAttach(ChangeAttachPageViewModel model)
        {
            var pageRepository = new PagesRepository();
            var regionRepository = new RegionsRepository();

            var region = regionRepository.GetById(model.Id);

            if (model.PageId.HasValue && model.PageId != region.PageId)
            {
                var page = pageRepository.GetById(model.PageId.Value);

                region.PageId = page.Id;
                region.Page = page;

                regionRepository.Update(region);
            }
            else
            {
                if (model.OldPageId.HasValue)
                {
                    region.PageId = null;
                    region.Page = null;

                    regionRepository.Update(region);
                }
            }

            return RedirectToAction("Details", new { id = model.Id });
        }
        public ActionResult Add(PageViewModel model)
        {
            try
            {
                var tagsRepository = new TagsRepository();
                var pointsRepository = new PointsRepository();
                var pagesRepository = new PagesRepository();

                var page = new Page()
                {
                    Name = model.Name,
                    Description = model.Description,
                    Content = model.Content,
                    ExternalId = model.ExternalId
                };

                if (model.SelectedTags != null)
                {
                    var tags = tagsRepository.GetByStringIds(model.SelectedTags);
                    page.Tags = new List<Tag>(tags);
                }
                else
                {
                    page.Tags = null;
                }

                var pageId = pagesRepository.Add(page);
                if (!string.IsNullOrEmpty(model.Point?.Name))
                {
                    model.Point.PageId = pageId;
                    pointsRepository.Add(model.Point);
                }

                if (model.RegionId != null)
                {
                    var regionsRepository = new RegionsRepository();

                    var region = regionsRepository.GetById(model.RegionId.Value);
                    region.Page = null;
                    region.PageId = pageId;

                    regionsRepository.Update(region);
                }

                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                return View();
            }
        }