Пример #1
0
        // GET: Edit existing fact
        public async Task <IActionResult> EditFact(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var fact = await _context.Facts.Include(f => f.Dykimage).Where(f => f.Dykid.Equals(id)).FirstOrDefaultAsync();

            if (fact == null)
            {
                return(NotFound());
            }
            FactCategories factCategory = new FactCategories
            {
                Dykid       = fact.Dykid,
                Dyktitle    = fact.Dyktitle,
                Dyktext     = fact.Dyktext,
                DykimageId  = fact.DykimageId,
                Dykcategory = fact.Dykcategory
            };

            if (fact.DykimageId != null)
            {
                ViewData["ImagePath"] = fact.Dykimage.ImagePath;
            }
            ViewData["Categories"] = TTLCategoryList(factCategory.Dykcategory);
            return(View(factCategory));
        }
Пример #2
0
        public async Task <IActionResult> CreateFact([Bind("Dyktitle,Dyktext,Dykcategory,CategoryName")] FactCategories fact, IFormFile file, string factStatus)
        {
            if (factStatus == "CreateFact")
            {
                if (fact.Dykcategory == Guid.Empty)
                {
                    ModelState.AddModelError("CategoryName", "Add or select a category before creating a Did You Know");
                }
                //check if image is valid
                ValidImageUpload(file, "Dyk");
                if (ModelState.IsValid)
                {
                    //create new fact object
                    Facts newFact = new Facts();
                    //give new Did You Know? a unique id
                    newFact.Dykid       = Guid.NewGuid();
                    newFact.Dyktitle    = fact.Dyktitle;
                    newFact.Dyktext     = fact.Dyktext;
                    newFact.Dykcategory = fact.Dykcategory;

                    //add image to image folder if employee uploaded one
                    if (file != null)
                    {
                        //Add to Database
                        Images image = await TTLAddImage(file);

                        _context.Add(image);
                        await _context.SaveChangesAsync();

                        newFact.DykimageId = image.ImageId;
                    }
                    //set DYK upload date
                    newFact.DykuploadDate = DateTime.Now;
                    newFact.DykeditDate   = DateTime.Now;
                    _context.Add(newFact);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(AllFacts)));
                }
            }
            //Add New Category
            else
            {
                if (ModelState.IsValid)
                {
                    Categories category = new Categories();
                    category.CategoryId   = Guid.NewGuid();
                    category.CategoryName = fact.CategoryName;
                    _context.Add(category);
                    await _context.SaveChangesAsync();

                    fact.Dykcategory = category.CategoryId;
                }
            }
            ViewData["Categories"] = TTLCategoryList(fact.Dykcategory);
            return(View(fact));
        }
Пример #3
0
        public async Task <IActionResult> EditFact(Guid id, [Bind("Dykid,Dyktitle,Dyktext,Dykcategory,CategoryName,DykimageId")] FactCategories fact, IFormFile file, string factStatus)
        {
            if (id != fact.Dykid)
            {
                return(NotFound());
            }

            if (factStatus == "EditFact")
            {
                if (fact.Dykcategory == Guid.Empty)
                {
                    ModelState.AddModelError("CategoryName", "Add or select a category before creating a Did You Know");
                }
                //check if image is valid
                ValidImageUpload(file, "Dyk");

                if (ModelState.IsValid)
                {
                    var editFact = await _context.Facts.Where(f => f.Dykid.Equals(id)).FirstOrDefaultAsync();

                    Images oldImage = await _context.Images.Where(i => i.ImageId.Equals(editFact.DykimageId)).FirstOrDefaultAsync();

                    editFact.Dyktitle    = fact.Dyktitle;
                    editFact.Dyktext     = fact.Dyktext;
                    editFact.Dykcategory = fact.Dykcategory;
                    editFact.DykimageId  = null;
                    //add image to image folder if employee uploaded one
                    if (file != null)
                    {
                        //Add to Database
                        Images image = await TTLAddImage(file);

                        _context.Add(image);
                        await _context.SaveChangesAsync();

                        editFact.DykimageId = image.ImageId;
                    }
                    //set DYK edit date
                    editFact.DykeditDate = DateTime.Now;
                    try
                    {
                        _context.Update(editFact);
                        if (oldImage != null)
                        {
                            TTLRemoveUnusedImage(editFact.DykimageId, oldImage);
                        }
                        await _context.SaveChangesAsync();
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        if (!FactExists(editFact.Dykid))
                        {
                            return(NotFound());
                        }
                        else
                        {
                            throw;
                        }
                    }
                    return(RedirectToAction(nameof(AllFacts)));
                }
            }
            //Add New Category
            else if (factStatus == "AddCategory")
            {
                if (ModelState.IsValid)
                {
                    Categories category = new Categories();
                    category.CategoryId   = Guid.NewGuid();
                    category.CategoryName = fact.CategoryName;
                    _context.Add(category);
                    await _context.SaveChangesAsync();

                    fact.Dykcategory = category.CategoryId;
                }
            }

            //Remove Image From Fact
            else
            {
                fact.DykimageId = null;
            }

            if (fact.DykimageId != null)
            {
                ViewData["ImagePath"] = _context.Images.Where(i => i.ImageId.Equals(fact.DykimageId)).FirstOrDefault().ImagePath;
            }
            ViewData["Categories"] = TTLCategoryList(fact.Dykcategory);
            return(View(fact));
        }