Beispiel #1
0
        public ActionOutput <ImagesByCategoryViewModel> GetEmojiFromLocalFolder()
        {
            var model      = new List <ImagesByCategoryViewModel>();
            var folderPath = HttpContext.Current.Server.MapPath("/Content/Images/Emoji");

            string[] FolderDirectory = Directory.GetDirectories(folderPath);
            if (FolderDirectory != null && FolderDirectory.Count() > 0)
            {
                foreach (string subdir in FolderDirectory)
                {
                    var    recentList = new ImagesByCategoryViewModel();
                    string foldername = new DirectoryInfo(subdir).Name;
                    var    imageList  = new List <ImagesViewModel>();
                    int    imageID    = 1;
                    foreach (string img in Directory.GetFiles(subdir))
                    {
                        var imageName = Path.GetFileName(img);
                        var imagePath = "/Content/Images/Emoji/" + foldername + "/" + imageName;
                        imageList.Add(new ImagesViewModel
                        {
                            FileName    = imageName,
                            Description = "Hygge Mail emoticons",
                            FilePath    = imagePath,
                            ImageID     = imageID
                        });
                        imageID++;
                    }
                    recentList.CatName     = foldername;
                    recentList.Images      = imageList;
                    recentList.ImagesCount = Directory.GetFiles(subdir).Length;
                    model.Add(recentList);
                }
            }
            return(new ActionOutput <ImagesByCategoryViewModel>
            {
                List = model,
                Message = "Emoji List",
                Status = ActionStatus.Successfull
            });
        }
Beispiel #2
0
        ActionOutput <ImagesByCategoryViewModel> IImageManager.GetImagesByCategoryWise(int userID = 0, string keyword = "")
        {
            var dataList = Context.ImageCategories.Where(c => c.IsActive == true && c.IsDeleted != true);
            var model    = new List <ImagesByCategoryViewModel>();

            //Bind Recently added images which were added by the admin of last one hour.
            //var lastOneHour = DateTime.UtcNow.AddHours(-1);
            //var recentlyAdded = Context.AdminImages.Where(x => x.AddedOn >= lastOneHour && x.ByAdmin == true && x.IsDeleted != true);
            //var recentList = new ImagesByCategoryViewModel();
            //recentList.CatName = "Recently Added";
            //recentList.ImagesCount = recentlyAdded.Count();
            //recentList.Images = Mapper.Map<List<AdminImage>, List<ImagesViewModel>>(recentlyAdded.ToList(), recentList.Images);
            //model.Add(recentList);

            //Bind most used images.
            var mostUsed     = Context.UserPostCardImages.Where(x => x.AdminImage.ByAdmin == true && x.AdminImage.IsDeleted != true).OrderBy(x => x.AdminImage.AddedOn).GroupBy(x => x.AdminImage).Take(20).ToList().Select(x => x.Key);
            var mostUsedList = new ImagesByCategoryViewModel();

            mostUsedList.CatName     = "Mostly Used";
            mostUsedList.ImagesCount = mostUsed.Count();
            mostUsedList.Images      = Mapper.Map <List <AdminImage>, List <ImagesViewModel> >(mostUsed.ToList(), mostUsedList.Images);
            model.Add(mostUsedList);
            if (userID > 0)
            {
                //Bind user added images which were added by the admin of last one hour.
                var userImages          = Context.AdminImages.Where(x => x.AddedBy == userID && x.IsDeleted != true);
                var userAddedImagesList = new ImagesByCategoryViewModel();
                userAddedImagesList.CatName         = "Personal Directory";
                userAddedImagesList.HasLoggedInUser = true;
                userAddedImagesList.ImagesCount     = userImages.Count();
                userAddedImagesList.Images          = Mapper.Map <List <AdminImage>, List <ImagesViewModel> >(userImages.ToList(), userAddedImagesList.Images);
                model.Add(userAddedImagesList);

                //Bind Recently used images by User.
                var recentlyUsed     = Context.UserPostCardImages.Where(x => x.UsedBy == userID && x.AdminImage.IsDeleted != true).GroupBy(x => x.AdminImage).ToList().Select(x => x.Key);
                var recentlyUsedList = new ImagesByCategoryViewModel();
                recentlyUsedList.CatName     = "Recently Used";
                recentlyUsedList.IsRecent    = true;
                recentlyUsedList.ImagesCount = recentlyUsed.Count();
                recentlyUsedList.Images      = Mapper.Map <List <AdminImage>, List <ImagesViewModel> >(recentlyUsed.ToList(), recentlyUsedList.Images);
                model.Add(recentlyUsedList);
            }



            foreach (var item in dataList)
            {
                var record = new ImagesByCategoryViewModel(item);
                record.Images = new List <ImagesViewModel>();
                if (userID > 0)
                {
                    var imageList = item.AdminImages.Where(x => (x.ByAdmin == true || x.AddedBy == userID) && x.IsDeleted != true);
                    record.Images      = Mapper.Map <List <AdminImage>, List <ImagesViewModel> >(imageList.ToList(), record.Images);
                    record.ImagesCount = record.Images.Count;
                }
                else
                {
                    var imageList = item.AdminImages.Where(x => x.ByAdmin == true && x.IsDeleted != true);
                    record.Images      = Mapper.Map <List <AdminImage>, List <ImagesViewModel> >(imageList.ToList(), record.Images);
                    record.ImagesCount = record.Images.Count;
                }
                model.Add(record);
                if (keyword != "")
                {
                    model = model.Where(c => c.CatName.ToLower().Contains(keyword.ToLower())).ToList();
                }
            }
            return(new ActionOutput <ImagesByCategoryViewModel>()
            {
                Message = "Images List", Status = ActionStatus.Successfull, List = model
            });
        }