public string Edit([FromBody] CreateCarouselModel model)
        {
            if (ModelState.IsValid)
            {
                var carousel = db.Carousel.Where(p => p.Id == model.Id).FirstOrDefault();

                if (carousel != null)
                {
                    carousel.Title            = model.Title;
                    carousel.Description      = model.Description;
                    carousel.Display          = model.Display;
                    carousel.DisplayDate      = model.DisplayDate;
                    carousel.TextLocation     = (int)model.TextLocation;
                    carousel.FreeTextArea     = model.FreeTextArea;
                    carousel.LastModifiedBy   = model.LastModifiedBy;
                    carousel.LastModifiedDate = DateTime.Now;

                    db.Entry(carousel).State = EntityState.Modified;

                    //files 1

                    var attachments1 = db.CarouselFile.Where(s => s.ParentId == model.Id).ToList();

                    if (attachments1 != null)
                    {
                        if (model.CoverPictures == null)
                        {
                            foreach (var attachment in attachments1)
                            {
                                attachment.FileDocument.Display = false;
                                db.FileDocument.Attach(attachment.FileDocument);
                                db.Entry(attachment.FileDocument).Property(m => m.Display).IsModified = true;
                                db.CarouselFile.Remove(attachment);
                            }
                        }
                        else
                        {
                            foreach (var attachment in attachments1)
                            {
                                if (!model.CoverPictures.Any(u => u.Id == attachment.FileDocument.Id))
                                {
                                    attachment.FileDocument.Display = false;
                                    db.FileDocument.Attach(attachment.FileDocument);
                                    db.Entry(attachment.FileDocument).Property(m => m.Display).IsModified = true;
                                    db.CarouselFile.Remove(attachment);
                                }
                            }
                        }
                    }

                    foreach (var fileid in model.CoverFilesId)
                    {
                        var coverfile = new CarouselFile
                        {
                            FileId   = fileid,
                            ParentId = carousel.Id
                        };

                        db.CarouselFile.Add(coverfile);
                    }

                    db.SaveChanges();

                    return(model.Title);
                }
            }
            return("");
        }
        // GET: CarouselManagement/Carousel/Create
        public ActionResult Create()
        {
            var model = new CreateCarouselModel();

            return(View(model));
        }
        public async Task <ActionResult> Create(CreateCarouselModel model, string Submittype)
        {
            if (model.CoverPictures.Count() == 0 && model.CoverPictureFiles.Count() == 0)
            {
                ModelState.AddModelError("CoverPictures", "Please upload an image");
            }
            else
            {
                //validate file
                foreach (var file in model.CoverPictureFiles)
                {
                    if (!FileMethod.IsValidType(file, filter_imgs))
                    {
                        ModelState.AddModelError("CoverPictures", Language.Carousel.ValidAttachment);
                        break;
                    }
                }
            }

            if (ModelState.IsValid)
            {
                var apimodel = new CreateCarouselModelNoFile
                {
                    Title         = model.Title,
                    Description   = model.Description,
                    Display       = model.Display,
                    DisplayDate   = model.DisplayDate,
                    TextLocation  = model.TextLocation,
                    FreeTextArea  = model.FreeTextArea,
                    CoverPictures = model.CoverPictures,
                    CreatedBy     = model.CreatedBy,
                    CreatedDate   = model.CreatedDate
                };

                if (model.CoverPictureFiles.Count() > 0)
                {
                    var files = await FileMethod.UploadFile(model.CoverPictureFiles.ToList(), CurrentUser.UserId, "carousel");

                    if (files != null)
                    {
                        apimodel.CoverFilesId = files.Select(f => f.Id).ToList();
                    }
                }

                var response = await WepApiMethod.SendApiAsync <string>(HttpVerbs.Post, $"Carousels/Carousel/Create", apimodel);

                if (response.isSuccess)
                {
                    string[] resparray = response.Data.Split('|');
                    string   newid     = resparray[0];
                    string   title     = resparray[1];

                    if ((model.CoverPictureFiles.Count() > 0))
                    {
                        await UploadImageFiles(int.Parse(newid), model.CoverPictureFiles.First());
                    }

                    await LogActivity(Modules.CarouselManagement, "Create New Carousel: " + title);

                    if (Submittype == "Save")
                    {
                        TempData["SuccessMessage"] = "New Carousel titled " + title + " created successfully and saved as draft.";

                        return(RedirectToAction("Index", "Carousel", new { area = "CarouselManagement" }));
                    }
                    else
                    {
                        return(RedirectToAction("Details", "Carousel", new { area = "CarouselManagement", @id = newid }));
                    }
                }
                else
                {
                    TempData["SuccessMessage"] = "Failed to create new Carousel.";

                    return(RedirectToAction("Index", "Carousel", new { area = "CarouselManagement" }));
                }
            }

            return(View(model));
        }
        public async Task <ActionResult> Edit(CreateCarouselModel model, string Submittype)
        {
            if (model.CoverPictures.Count() == 0 && model.CoverPictureFiles.Count() == 0)
            {
                ModelState.AddModelError("CoverPictures", "Please upload an image");
            }
            else
            {
                //validate file
                foreach (var file in model.CoverPictureFiles)
                {
                    if (!FileMethod.IsValidType(file, filter_imgs))
                    {
                        ModelState.AddModelError("CoverPictures", Language.Carousel.ValidAttachment);
                        break;
                    }
                }
            }

            if (ModelState.IsValid)
            {
                var apimodel = new CreateCarouselModel
                {
                    Id             = model.Id,
                    Title          = model.Title,
                    Description    = model.Description,
                    Display        = model.Display,
                    DisplayDate    = model.DisplayDate,
                    TextLocation   = model.TextLocation,
                    FreeTextArea   = model.FreeTextArea,
                    LastModifiedBy = CurrentUser.UserId,
                    CoverPictures  = model.CoverPictures
                };

                //attachment 1: cover pics
                if (model.CoverPictureFiles.Count() > 0)
                {
                    var files = await FileMethod.UploadFile(model.CoverPictureFiles.ToList(), CurrentUser.UserId, "carousel");

                    if (files != null)
                    {
                        apimodel.CoverFilesId = files.Select(f => f.Id).ToList();
                    }
                }

                var response = await WepApiMethod.SendApiAsync <string>(HttpVerbs.Post, $"Carousels/Carousel/Edit", apimodel);

                if (response.isSuccess)
                {
                    await LogActivity(Modules.CarouselManagement, "Edit Carousel: " + response.Data, model);

                    if (Submittype == "Save")
                    {
                        TempData["SuccessMessage"] = "Carousel titled " + response.Data + " updated successfully and saved as draft.";

                        return(RedirectToAction("Index", "Carousel", new { area = "CarouselManagement" }));
                    }
                    else
                    {
                        TempData["SuccessMessage"] = "Carousel titled " + response.Data + " updated successfully.";
                        return(RedirectToAction("Details", "Carousel", new { area = "CarouselManagement", @id = model.Id }));
                    }
                }
                else
                {
                    TempData["ErrorMessage"] = "Failed to edit Publication.";

                    return(RedirectToAction("Edit", "Carousel", new { area = "CarouselManagement", @id = model.Id }));
                }
            }

            return(View(model));
        }