public async Task <ActionResult> Create(ImageEditViewModel model)
        {
            if (DoesCodeAlreadyExist(model.Image))
            {
                ModelState.AddModelError("Image.ImageCode", ImageStrings.CodeAlreadyExists);
            }

            if (ModelState.IsValid)
            {
                if (model.ImageUpload != null)
                {
                    var fileName = Guid.NewGuid().ToString();
                    var path     = Server.MapPath("~/Public/Images/");

                    FileUploadHelper.GenerateVersions(model.ImageUpload.InputStream, path + fileName);

                    model.Image.ImageUrl = fileName;
                }

                model.Image.Keywords =
                    db.Set <Keyword>()
                    .Where(kw => model.KeywordIds.Contains(kw.Id))
                    .ToList();

                db.Add(model.Image);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            model.PopulateDropDownLists(db.Set <Document>(), db.Set <Classification>(), db.Set <Keyword>());

            return(View(model));
        }
Esempio n. 2
0
        public async Task <ActionResult> Edit(NewsItemViewModel model)
        {
            if (ModelState.IsValid)
            {
                db.Update(model.NewsItem);

                if (model.HeaderImageUpload != null)
                {
                    var fileName =
                        db.GetValueFromDb(model.NewsItem, i => i.HeaderImage) ??
                        Guid.NewGuid().ToString();

                    var path = Server.MapPath("~/Public/News/");
                    Directory.CreateDirectory(path);

                    FileUploadHelper.GenerateVersions(model.HeaderImageUpload.InputStream, path + fileName);

                    model.NewsItem.HeaderImage = fileName;
                }
                else
                {
                    db.ExcludeFromUpdate(model.NewsItem, i => new { i.HeaderImage });
                }

                foreach (var t in model.NewsItem.Translations)
                {
                    db.UpdateTranslation(t);
                }

                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(GenerateViewModel(model.NewsItem)));
        }
        public async Task <ActionResult> Edit(ImageEditViewModel model)
        {
            if (DoesCodeAlreadyExist(model.Image))
            {
                ModelState.AddModelError("Image.ImageCode", ImageStrings.CodeAlreadyExists);
            }

            if (ModelState.IsValid)
            {
                // "Force-load" the image and the keywords.
                await db.ForceLoadAsync(model.Image, i => i.Keywords);

                db.Update(model.Image);

                model.Image.Keywords = db.Set <Keyword>()
                                       .Where(k => model.KeywordIds.Contains(k.Id)).ToList();

                foreach (var t in model.Image.Translations)
                {
                    db.UpdateTranslation(t);
                }

                if (model.ImageUpload != null)
                {
                    var fileName =
                        db.GetValueFromDb(model.Image, i => i.ImageUrl) ??
                        Guid.NewGuid().ToString();

                    var path = Server.MapPath("~/Public/Images/");
                    Directory.CreateDirectory(path);

                    FileUploadHelper.GenerateVersions(model.ImageUpload.InputStream, path + fileName);

                    model.Image.ImageUrl = fileName;
                }
                else
                {
                    db.ExcludeFromUpdate(model.Image, i => new { i.ImageUrl });
                }

                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            model.PopulateDropDownLists(db.Set <Document>(), db.Set <Classification>(), db.Set <Keyword>());

            return(View(model));
        }
Esempio n. 4
0
        public async Task <ActionResult> Create(SpecimenPhotoUploadModel model)
        {
            if (ModelState.IsValid)
            {
                var returnModel = new DigitalPhotographPostUploadModel();

                foreach (var photo in model.Photos)
                {
                    var fileName = Guid.NewGuid().ToString() + "_" + photo.FileName;

                    var dPhoto = new DigitalPhotograph
                    {
                        SpecimenId = model.SpecimenId,
                        FileName   = fileName
                    };

                    // Save the file and the smaller versions.
                    var completePath = Server.MapPath("~/App_Data/Uploads/Photos/");
                    Directory.CreateDirectory(completePath);
                    photo.SaveAs(completePath + fileName);
                    FileUploadHelper.GenerateVersions(completePath + fileName);

                    returnModel.UploadedItems.Add(new DigitalPhotographUploadItem
                    {
                        DigitalPhotograph = dPhoto
                    });

                    db.DigitalPhotographs.Add(dPhoto);
                }

                await db.SaveChangesAsync();

                if (Request.IsAjaxRequest())
                {
                    return(PartialView("PostUpload", returnModel));
                }

                return(View("PostUpload", returnModel));
            }

            return(View(model));
        }
Esempio n. 5
0
        public async Task <ActionResult> Create(NewsItemViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.HeaderImageUpload != null)
                {
                    var fileName = Guid.NewGuid().ToString();
                    var path     = Server.MapPath("~/Public/News/");

                    FileUploadHelper.GenerateVersions(model.HeaderImageUpload.InputStream, path + fileName);

                    model.NewsItem.HeaderImage = fileName;
                }

                db.Add(model.NewsItem);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(GenerateViewModel(model.NewsItem)));
        }