예제 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:System.Object"/> class.
 /// </summary>
 public BannerTemplateJsonModel(UserBannerTemplate banner)
 {
     Id = banner.Id;
     Filename = banner.Filename;
     Category = banner.Category;
 }
예제 #2
0
 /// <summary>
 /// Обнолвяет объект баннера
 /// </summary>
 /// <param name="banner"></param>
 public void UpdateBanner(UserBannerTemplate banner)
 {
     banner.Filename = Filename;
     banner.Category = Category;
 }
        public JsonResult Save([ModelBinder(typeof(JsonModelBinder))] BannerTemplateJsonModel model)
        {
            try
            {
                // Репозиторий
                var repository = Locator.GetService<IUserBannerTemplatesRepository>();

                // Сохраняем файл с картинкой
                bool fileSubmitted = false;
                string submittedFileName = "";
                var file = Request.Files["file"];
                if (file != null && file.ContentLength > 0 && file.ContentType.Contains("image"))
                {
                    fileSubmitted = true;
                    var fileName = String.Format("{0}-{1}{2}", Path.GetFileNameWithoutExtension(file.FileName),
                                                 new Random(System.Environment.TickCount).Next(65535),
                                                 Path.GetExtension(file.FileName));
                    FileUtils.SavePostedFile(file, "bannertemplates", fileName);
                    submittedFileName = fileName;
                }

                if (model.Id <= 0)
                {
                    // Создаем новую страничку
                    var banner = new UserBannerTemplate()
                    {
                        Category = model.Category,
                        Filename = fileSubmitted ? submittedFileName : model.Filename
                    };
                    repository.Add(banner);

                    // Сохраняем изменения
                    repository.SubmitChanges();

                }
                else
                {
                    // Обновляем существующую
                    var banner = repository.Load(model.Id);
                    if (banner == null)
                    {
                        throw new ObjectNotFoundException(String.Format("Баннер с идентификатором {0} не найден", model.Id));
                    }

                    banner.Category = model.Category;
                    banner.Filename = fileSubmitted ? submittedFileName : model.Filename;

                    // Сохраняем изменения
                    repository.SubmitChanges();
                }

                return JsonSuccess();
            }
            catch (Exception e)
            {
                return JsonErrors(e);
            }
        }