/// <summary>
 /// Стандартный конструктор
 /// </summary>
 /// <param name="publication">Публикация</param>
 public PublicationModel(Publication publication)
 {
     id = publication.Id;
     title = publication.Title;
     img = publication.Image;
     annotation = publication.Annotation;
     pdate = publication.PublicationDate.FormatDate();
     objType = "publication";
 }
		private void detach_Publications(Publication entity)
		{
			this.SendPropertyChanging();
			entity.City = null;
		}
		private void attach_Publications(Publication entity)
		{
			this.SendPropertyChanging();
			entity.City = this;
		}
 /// <summary>
 /// Стандартный конструктор
 /// </summary>
 /// <param name="publication">Публикация</param>
 public PublicationDetailsModel(Publication publication)
     : base(publication)
 {
     content = publication.Content;
 }
        public ActionResult Save(Publication model)
        {
            var file = Request.Files["Image"];
            string imageUrl = null;
            if (file != null && file.ContentLength > 0 && file.ContentType.ToLower().Contains("image"))
            {
                var fileName = Path.ChangeExtension(Path.GetRandomFileName(), ".jpg");
                var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "Publications");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                var fullPath = Path.Combine(path, fileName);
                ImageHelper.SaveAs(file, fullPath);
                imageUrl = "/Files/Publications/" + fileName;
            }

            if (model.Id <= 0)
            {
                model.DateCreated = DateTime.Now;
                model.Image = imageUrl;
                Repository.Add(model);
                Repository.SubmitChanges();
                ShowSuccess("Публикация успешно добавлена");
            }
            else
            {
                // Ищем
                var publication = Repository.Load(model.Id);
                if (publication == null)
                {
                    ShowError("Такая публикация не найдена");
                    return RedirectToAction("Index");
                }

                // Пытаемся обновить
                var oldImage = publication.Image;
                TryUpdateModel(publication);
                publication.DateModified = DateTime.Now;
                publication.Image = imageUrl ?? oldImage;
                if (publication.City.Id != model.CityId)
                {
                    publication.City.Publications.Remove(publication);
                    Locator.GetService<ICitiesRepository>().Load(model.CityId).Publications.Add(publication);
                }
                Repository.SubmitChanges();

                ShowSuccess("Публикация успешно отредактирована");
            }

            return RedirectToAction("Index");
        }