public async Task <IActionResult> Create(ArtworkViewModel artwork)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = UploadedFile(artwork);

                Artwork art = new Artwork()
                {
                    Title     = artwork.Title,
                    Type      = artwork.Type,
                    Length    = artwork.Length,
                    Width     = artwork.Width,
                    Price     = artwork.Price,
                    ArtImage  = uniqueFileName,
                    Materials = artwork.Materials.ToModel(m => new Material
                    {
                        MaterialId = m.MaterialId,
                        Title      = m.Title,
                        Category   = m.Category
                    }).ToList()
                };

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

                return(RedirectToAction(nameof(Artwork)));
            }
            return(View());
        }
示例#2
0
        public void CheckIfFirstAddedArtAlsoIsFirstInViewModel_FirstArtworkMatch()
        {
            List <Artwork> listOfArt = new List <Artwork>();
            Artwork        uniqueArt = new Artwork()
            {
                ArtName = "SameName"
            };

            listOfArt.Add(uniqueArt);

            for (int i = 0; i < 10; i++)
            {
                Artwork art = new Artwork()
                {
                    ArtName = "Test"
                };
                listOfArt.Add(art);
            }
            IEnumerable <Artwork> collectiveArt    = listOfArt;
            List <Member>         member           = new List <Member>();
            ArtworkViewModel      artworkViewmodel = new ArtworkViewModel(collectiveArt, member);

            string expected = "SameName";
            string actual   = artworkViewmodel.CollectiveArt[0].ArtName;

            Assert.Equal(expected, actual);
        }
示例#3
0
        // GET: ArtWorks
        //public ActionResult Index()
        //{
        //    List<ArtworkViewModel> collection = new List<ArtworkViewModel>();
        //    try
        //    {


        //        using (ViewModels.ArtworkViewModel ViewModel = new ArtworkViewModel())
        //        {
        //            collection = ViewModel.GetData();
        //        }

        //    }
        //    catch (Exception ex)
        //    {

        //        throw ex;
        //    }

        //    return View(collection);
        //}

        public ActionResult GetDataPagination(int?Page_No)
        {
            List <ArtworkViewModel> collection = new List <ArtworkViewModel>();
            var pagedData = new PagedDataSet <ArtworkViewModel>();
            int pageSize  = 10;

            try
            {
                using (ViewModels.ArtworkViewModel ViewModel = new ArtworkViewModel())
                {
                    var pageNumber = (Page_No.HasValue) ? ((Page_No.Value >= 1) ? Page_No.Value : 0) : 0;

                    pagedData = ViewModel.GetDataPagination(pageNumber);
                    //pick coilumns you need
                    var selectedData = (from p in pagedData.Items
                                        select new
                    {
                        ArtWorkID = p.ArtWorkID
                        , ArtTitle = p.ArtTitle
                        , Location = p.CurrenTLocation.Value
                    }
                                        ).ToList();
                    //    model = new PagedList<ArtworkViewModel>(collection, Page_No.HasValue?Page_No.Value:1, pageSize);
                    //    //collection.ToPagedList(pageValue, 10);
                    //    model.PageCount = ViewModel.GetData().Count();
                    //  obj = ViewModel.GetDataPagination(Page_No);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(View(pagedData.Items.ToPagedList(pageNumber: Page_No ?? 1, pageSize: 10)));
        }
        public IActionResult Edit(Guid ArtworkId)
        {
            // get artwork from database (ArtworkModel)
            ArtworkModel     model     = _artworkDataManager.GetOneArtwork(ArtworkId);
            ArtworkViewModel viewModel = new ArtworkViewModel();

            viewModel.Id    = model.Id;
            viewModel.Title = model.Title;

            ArtistModel[] artists    = _artistDataManager.GetArtists();
            var           artistList = artists.Select(x => new { x.Id, x.FullName }).ToList();

            viewModel.ArtistDropdown = new SelectList(artistList, "Id", "FullName", model.Artist.FullName);


            StyleModel[] styles    = _artworkDataManager.GetStyles();
            var          styleList = styles.Select(x => new { x.Id, x.Style }).ToList();

            viewModel.StyleDropdown = new SelectList(styleList, "Id", "Style", model.Style.Style);

            viewModel.Year         = model.Year;
            viewModel.Description  = model.Description;
            viewModel.Type         = model.Type;
            viewModel.Price        = model.Price;
            viewModel.Availability = model.Availability;

            // return view

            return(View(viewModel));
        }
示例#5
0
        public ActionResult Index(int?Page_No)
        {
            List <ArtworkViewModel> collection = new List <ArtworkViewModel>();
            var pagedData = new PagedDataSet <ArtworkViewModel>();
            int pageSize  = 10;

            try
            {
                using (ViewModels.ArtworkViewModel ViewModel = new ArtworkViewModel())
                {
                    var pageNumber = (Page_No.HasValue) ? ((Page_No.Value >= 1) ? Page_No.Value : 0) : 0;
                    pagedData = ViewModel.GetDataPagination(pageNumber);

                    //    model = new PagedList<ArtworkViewModel>(collection, Page_No.HasValue?Page_No.Value:1, pageSize);
                    //    //collection.ToPagedList(pageValue, 10);
                    //    model.PageCount = ViewModel.GetData().Count();
                    //  obj = ViewModel.GetDataPagination(Page_No);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(View(pagedData));
        }
        // GET: Artworks/Delete/5
        public async Task <IActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var artwork = await _context.Artwork
                          .Include(x => x.Materials)
                          .FirstOrDefaultAsync(x => x.ProductId == id);

            var artworkViewModel = new ArtworkViewModel()
            {
                ArtId         = artwork.ProductId,
                Title         = artwork.Title,
                Type          = artwork.Type,
                Length        = artwork.Length,
                Width         = artwork.Width,
                Price         = artwork.Price,
                ExistingImage = artwork.ArtImage,
                Materials     = artwork.Materials.ToDynamicList(m => new MaterialViewModel()
                {
                    MaterialId = m.MaterialId,
                    Title      = m.Title,
                    Category   = m.Category
                })
            };

            if (artwork == null)
            {
                return(NotFound());
            }

            return(View(artworkViewModel));
        }
示例#7
0
 public FileContentResult GetImg(int id)
 {
     try
     {
         byte[] fileData = null;
         using (ArtworkViewModel vm = new ArtworkViewModel())
         {
             using (var c = new ArtWorkDBEntities1())
             {
                 fileData = (from p in c.Artworks
                             where p.ArtworkID == id
                             select p.Image).FirstOrDefault();
                 var fileExtension = (from p in c.Artworks
                                      where p.ArtworkID == id
                                      select p.FileExtension).FirstOrDefault();
             }
             FileContentResult varFile = new FileContentResult(fileData, "image/octet-stream");
             return(varFile);
             //   return new FileContentResult(fileData, "application/octet-stream", 1);
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
示例#8
0
        public ActionResult Create(ArtworkViewModel model)
        {
            ArtworkViewModel ViewModel = new ArtworkViewModel();

            ModelState.Clear();
            return(View(model));
        }
示例#9
0
        public ActionResult Edit(ArtworkViewModel model)
        {
            var id        = 0;
            var viewModel = new ArtworkViewModel();

            if (ModelState.IsValid)
            {
                if (model.Image != null)
                {
                    //image cannot be length cannot be more than
                    byte[] pic = this.ConvertToBytes(model.Image);

                    string extension = System.IO.Path.GetExtension(model.Image.FileName);
                    if (extension == ".png" || extension.Equals(".jpeg") || extension.Equals(".jpg"))
                    {
                        model.fileExtension = extension;

                        model.Photo = pic;
                        id          = model.Update(model);

                        if (id > 0)
                        {
                            using (ArtworkViewModel ArtWorkViewMod = new ArtworkViewModel())
                            {
                                viewModel = ArtWorkViewMod.GetObject(model.ArtWorkID);
                            }
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("Image", "Invalid File formats:Only png,jpeg,jpg are allowed");
                        //throw new Exception("Invalid File formats:Only png,jpeg,jpg are allowed");
                    }
                }
                else
                {
                    id = model.Update(model);

                    if (id > 0)
                    {
                        using (ArtworkViewModel ArtWorkViewMod = new ArtworkViewModel())
                        {
                            viewModel = ArtWorkViewMod.GetObject(model.ArtWorkID);
                        }
                    }
                }

                //map
            }
            else
            {
                //model errors

                ModelState.AddModelError("", "There are form errors; please correct them to continue!");
            }

            //  return RedirectToAction("Edit", new { id = model.ArtWorkID });
            return(View(model));
        }
示例#10
0
        public async Task <IActionResult> Index(string Id)
        {
            var member = MemberRepository.GetAllMembers();
            IEnumerable <Artwork> listOfArtworks = await ArtRepository.GetArtThatsPosted();

            ArtworkViewModel = new ArtworkViewModel(listOfArtworks, member);
            return(View(ArtworkViewModel));
        }
示例#11
0
        public void CheckIfViewModelCanContainEmptyList_ReturnsEmptyList()
        {
            IEnumerable <Artwork> collectiveArt    = new List <Artwork>();
            List <Member>         member           = new List <Member>();
            ArtworkViewModel      artworkViewmodel = new ArtworkViewModel(collectiveArt, member);

            Assert.NotNull(artworkViewmodel);
        }
示例#12
0
        public IActionResult Index()
        {
            ArtworkViewModel artworkViewModel = new ArtworkViewModel();

            artworkViewModel.AllArtwork   = _artworkRepository.AllArtwork;
            artworkViewModel.ArtworkCount = _artworkRepository.AllArtwork.Count();
            return(View(artworkViewModel));
        }
示例#13
0
        public ActionResult CreateArtwork()
        {
            var viewModel = new ArtworkViewModel();

            viewModel.Artists    = new ArtistRepository().GetAllArtist().ToList().ConvertToViewModel();
            viewModel.Categories = new CategoryRepository().GetAllCategories().ToList().ConvertToViewModel();

            return(View(viewModel));
        }
        public IActionResult AddArtwork(ArtworkViewModel model)
        {
            ArtistModel artistmodel = _artistDataManager.GetOneArtist(model.SelectedArtist);
            StyleModel  stylemodel  = _artworkDataManager.GetOneStyle(model.SelectedStyle);

            _artworkDataManager.AddArtwork(model.Title, artistmodel, stylemodel, model.Year, model.Description, model.Type, model.Price, model.Availability);

            return(RedirectToAction(nameof(Index)));
        }
        /// <summary>
        /// Returns the ViewModel and enables presentation of posted Artworks and Exhibition on the Home page.
        /// </summary>
        /// <param name="members"></param>
        /// <returns></returns>
        public async Task <ArtworkViewModel> GetViewModel(List <Member> members)
        {
            var listOfArt = await GetArtThatsPosted();

            var listOfArtFromExhibitions = await GetAllArtToExhibitions();

            List <Exhibit> exhibits = await GetExhibits();

            var model = new ArtworkViewModel(listOfArt, members, exhibits, listOfArtFromExhibitions.ToList());

            return(model);
        }
示例#16
0
        public ActionResult EditArtwork(int artworkId)
        {
            var artwork = _artRepository.Get(artworkId);

            var viewModel = new ArtworkViewModel
            {
                Id   = artwork.Id,
                Name = artwork.Name
            };

            return(View(viewModel));
        }
        public IActionResult FavoriteArtworks()
        {
            var user = _userManager.GetUserAsync(User).Result;
            ArtworkViewModel viewModel = new ArtworkViewModel();
            var artworks = _artworkDataManager.GetFavoriteArtworks(user);

            viewModel.Artworks = artworks;
            viewModel.UserId   = user.Id;

            /*foreach (var artwork in viewModel.Artworks){
             *  if (artwork.Users.Any(x => x.Id == viewModel.UserId)){}}*/

            return(View("FavoriteArtworks", viewModel));
        }
示例#18
0
        public ActionResult CreateArtwork(ArtworkViewModel model)
        {
            if (ModelState.IsValid)
            {
                var     repo    = new ArtworkRepository();
                Artwork artwork = model.ConvertToBusinessModel();
                artwork.Active = true;
                artwork.Date   = DateTime.Now;
                repo.InsertArtwork(artwork);
            }
            model.Artists    = new ArtistRepository().GetAllArtist().ToList().ConvertToViewModel();
            model.Categories = new CategoryRepository().GetAllCategories().ToList().ConvertToViewModel();

            return(View(model));
        }
示例#19
0
        public static Artwork ConvertToBusinessModel(this ArtworkViewModel model)
        {
            var artwork = new Artwork
            {
                Artist      = model.Artist,
                Category    = model.Category,
                Description = model.Description,
                ImgFileName = "",
                Price       = model.Price,
                SizeHeight  = model.SizeHeight,
                SizeWidth   = model.SizeWidth,
                Title       = model.Title
            };

            return(artwork);
        }
        private string UploadedFile(ArtworkViewModel artwork)
        {
            string uniqueFileName = null;

            if (artwork.ProductImage != null)
            {
                string uploadsFolder = Path.Combine(webHostEnvironment.WebRootPath, "images");
                uniqueFileName = Guid.NewGuid().ToString() + "_" + artwork.ProductImage.FileName;
                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    artwork.ProductImage.CopyTo(fileStream);
                }
            }
            return(uniqueFileName);
        }
示例#21
0
        public ActionResult Save(ArtworkViewModel model, HttpPostedFileBase file)
        {
            var id        = 0;
            var viewModel = new ArtworkViewModel();

            if (ModelState.IsValid)
            {
                if (model.Image != null)
                {
                    byte[] pic = this.ConvertToBytes(model.Image);

                    string extension = System.IO.Path.GetExtension(model.Image.FileName);
                    if (extension == ".png" || extension.Equals(".jpeg") || extension.Equals(".jpg"))
                    {
                        model.fileExtension = extension;
                        viewModel           = model;
                        viewModel.Photo     = pic;
                    }
                    else
                    {
                        throw new Exception("Invalid File formats:Only png,jpeg,jpg are allowed");
                    }
                }



                id = model.Update(viewModel);

                if (id > 0)
                {
                    using (ArtworkViewModel ArtWorkViewMod = new ArtworkViewModel())
                    {
                        viewModel = ArtWorkViewMod.GetObject(model.ArtWorkID);
                    }
                }
            }
            else
            {
                //model errors

                ModelState.AddModelError("", "There are form errors; please correct them to continue!");
            }

            return(RedirectToAction("Edit", new { id = model.ArtWorkID }));
        }
示例#22
0
        public ActionResult Create(ArtworkViewModel model, HttpPostedFileBase file)
        {
            var newID = 0;
            HttpPostedFileBase uploadfile = Request.Files["upload"];
            var viewModel = new ArtworkViewModel();

            if (ModelState.IsValid)
            {
                if (model.Image != null)
                {
                    //image cannot be length cannot be more than
                    byte[] pic = this.ConvertToBytes(model.Image);
                    model.Photo = pic;
                    string extension = System.IO.Path.GetExtension(model.Image.FileName);
                    if (extension == ".png" || extension.Equals(".jpeg") || extension.Equals(".jpg"))
                    {
                        model.fileExtension = extension;
                    }
                    else
                    {
                        ModelState.AddModelError("", "Invalid File formats:Only png,jpeg,jpg are allowed");
                        throw new Exception("Invalid File formats:Only png,jpeg,jpg are allowed");
                    }
                }


                newID = model.Insert(model);

                if (newID > 0)
                {
                    using (ArtworkViewModel ArtWorkViewMod = new ArtworkViewModel())
                    {
                        viewModel = ArtWorkViewMod.GetObject(newID);
                        return(RedirectToAction("Edit", new { id = newID }));
                    }
                }
            }
            else
            {
                //model errors
                ModelState.AddModelError("", "There are form errors; please correct them to continue!");
            }
            return(View(model));
        }
        public async Task <IActionResult> Edit(int id, ArtworkViewModel artwork)
        {
            if (id != artwork.ArtId)
            {
                return(NotFound());
            }
            if (ModelState.IsValid)
            {
                string uniqueFileName = UploadedFile(artwork);
                var    artModel       = new Artwork();

                artModel.ProductId = artwork.ArtId;
                artModel.Title     = artwork.Title;
                artModel.Type      = artwork.Type;
                artModel.Length    = artwork.Length;
                artModel.Width     = artwork.Width;
                artModel.Price     = artwork.Price;
                artModel.ArtImage  = uniqueFileName;
                artModel.Materials = artwork.Materials.ToModel(m => new Material
                {
                    MaterialId = m.MaterialId,
                    Title      = m.Title,
                    Category   = m.Category
                }).ToList();
                if (artwork.ProductImage == null)
                {
                    artModel.ArtImage = uniqueFileName;
                }
                else if (artwork.ProductImage != null)
                {
                    if (artwork.ExistingImage != null)
                    {
                        string filePath = Path.Combine(webHostEnvironment.WebRootPath, "images", artwork.ExistingImage);
                        System.IO.File.Delete(filePath);
                    }
                    artModel.ArtImage = UploadedFile(artwork);
                }
                _context.Update(artModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Artwork)));
            }
            return(View(artwork));
        }
示例#24
0
        public async Task <IActionResult> Category(string Id)
        {
            List <Artwork> ArtList = new List <Artwork>();

            var member = MemberRepository.GetAllMembers();
            IEnumerable <Artwork> listOfArtworks = await ArtRepository.GetArtThatsPosted();

            foreach (Artwork piece in listOfArtworks)
            {
                if (piece.Type == Id)
                {
                    ArtList.Add(piece);
                }
            }

            ArtworkViewModel = new ArtworkViewModel(ArtList, member);

            return(View(Id, ArtworkViewModel));
        }
示例#25
0
        public ActionResult Edit(Int32?id)
        {
            if (User.Identity.IsAuthenticated)
            {
                ArtworkViewModel ViewModel = new ArtworkViewModel();
                if (id.HasValue)
                {
                    ViewModel = ViewModel.GetObject(id.Value);
                }
                //does modle state have any errors


                return(View(ViewModel));
            }
            else
            {
                return(RedirectToAction("Index", "ArtWorks"));
            }
        }
示例#26
0
        public ActionResult AddArtwork(ArtworkViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                foreach (var error in ModelState.Values.SelectMany(m => m.Errors).Select(e => e.ErrorMessage))
                {
                    _orchardServices.Notifier.Error(T(error));
                }
                return(RedirectToAction("AddArtwork"));
            }

            // If art file with the name already exist we are adding GUID ending
            var fileName        = viewModel.Name;
            var existingArtwork = _artRepository.Table
                                  .FirstOrDefault(a => a.ArtCulture == cultureUsed && a.Name == viewModel.Name);

            if (existingArtwork != null)
            {
                fileName = string.Format(ArtworkFileNameTemplate, viewModel.Name, Guid.NewGuid());
            }

            var success = SaveArtworkImages(
                viewModel.ArtworkSvgImage,
                viewModel.ArtworkPngImage,
                fileName);

            if (!success)
            {
                return(RedirectToAction("AddArtwork"));
            }

            var art = new ArtRecord
            {
                Name       = viewModel.Name,
                FileName   = string.Format(ArtworkSvgImageFileNameTemplate, viewModel.Name),
                ArtCulture = cultureUsed
            };

            _artRepository.Create(art);

            _orchardServices.Notifier.Information(T("Artwork \"{0}\" has been added", viewModel.Name));
            return(RedirectToAction("Index"));
        }
        private ArtworkViewModel ModelToViewModel(Artwork model)
        {
            var artworkViewModel = new ArtworkViewModel()
            {
                ArtId     = model.ProductId,
                Title     = model.Title,
                Type      = model.Type,
                Length    = model.Length,
                Width     = model.Width,
                Price     = model.Price,
                Materials = model.Materials.ToDynamicList(m => new MaterialViewModel()
                {
                    MaterialId = m.MaterialId,
                    Title      = m.Title,
                    Category   = m.Category
                })
            };

            return(artworkViewModel);
        }
示例#28
0
        public ActionResult EditArtwork(ArtworkViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                foreach (var error in ModelState.Values.SelectMany(m => m.Errors).Select(e => e.ErrorMessage))
                {
                    _orchardServices.Notifier.Error(T(error));
                }
                return(RedirectToAction("EditArtwork"));
            }

            var artwork = _artRepository.Get(viewModel.Id);

            // If art file with the name already exist we are adding GUID ending
            var fileName        = viewModel.Name;
            var existingArtwork = _artRepository.Table
                                  .FirstOrDefault(a => a.Name == viewModel.Name && a != artwork);

            if (existingArtwork != null)
            {
                fileName = string.Format(ArtworkFileNameTemplate, viewModel.Name, Guid.NewGuid());
            }

            var success = UpdateArtworkImages(
                viewModel.ArtworkSvgImage,
                viewModel.ArtworkPngImage,
                fileName,
                artwork.Name);

            if (!success)
            {
                RedirectToAction("EditArtwork", new { artworkId = artwork.Id });
            }

            artwork.Name     = viewModel.Name;
            artwork.FileName = string.Format(ArtworkSvgImageFileNameTemplate, viewModel.Name);
            _artRepository.Update(artwork);

            _orchardServices.Notifier.Information(T("Artwork \"{0}\" has been edited.", artwork.Name));
            return(RedirectToAction("Index"));
        }
        private Artwork ViewModelToModel(ArtworkViewModel viewModel)
        {
            string uniqueFileName = UploadedFile(viewModel);

            return(new Artwork()
            {
                ProductId = viewModel.ArtId,
                Title = viewModel.Title,
                Type = viewModel.Type,
                Length = viewModel.Length,
                Width = viewModel.Width,
                Price = viewModel.Price,
                ArtImage = uniqueFileName,
                Materials = viewModel.Materials.ToModel(m => new Material
                {
                    MaterialId = m.MaterialId,
                    Title = m.Title,
                    Category = m.Category
                }).ToList()
            });
        }
示例#30
0
        public void CheckIfValuesMatchFromViewModel_AllArtFollowsFromViewModel()
        {
            List <Artwork> listOfArt = new List <Artwork>();

            for (int i = 0; i < 10; i++)
            {
                Artwork art = new Artwork()
                {
                    ArtName = "Test"
                };
                listOfArt.Add(art);
            }
            List <Member>         member           = new List <Member>();
            IEnumerable <Artwork> collectiveArt    = listOfArt;
            ArtworkViewModel      artworkViewmodel = new ArtworkViewModel(collectiveArt, member);

            int expected = 10;
            int actual   = artworkViewmodel.CollectiveArt.Count;

            Assert.Equal(expected, actual);
        }