Exemplo n.º 1
0
        public ActionResult UserFiles(int?folderID)
        {
            string viewType = string.Empty;

            if (Request.Cookies["viewType"] != null)
            {
                viewType = Request.Cookies["viewType"].Value.ToString();
            }
            else
            {
                Response.Cookies["viewType"].Value = "List";
            }

            string sortType = string.Empty;

            if (Request.Cookies["sortType"] != null)
            {
                sortType = Request.Cookies["sortType"].Value.ToString();
            }
            else
            {
                Response.Cookies["sortType"].Value = "SortByAdditionDate";
            }

            string userId = User.Identity.GetUserId();
            List <FileSystemModels>     files = null;
            IEnumerable <FileSystemDTO> fileSystemDtos;

            try
            {
                var folder = _fileSystemService.Get(userId, folderID);
                if (folder == null || folder.Type.ToLower().Equals("folder"))
                {
                    fileSystemDtos = _fileSystemService.GetUserFileSystem(userId, folderID);
                }
                else
                {
                    return(HttpNotFound());
                }
            }
            catch (Exception ex)
            {
                // some logic for user
                return(View("Error"));
            }

            //Mapper.Initialize(cfg => cfg.CreateMap<FileSystemDTO, FileSystemModels>());

            Mapper.Initialize(cfg => cfg.CreateMap <FileSystemDTO, FileSystemModels>()
                              .ForMember(to => to.Tags, opt => opt.MapFrom(from => from.Tags.Select(o => new TagModels {
                Id = o.Id, Name = o.Name
            }).ToList())));

            files = Mapper.Map <IEnumerable <FileSystemDTO>, List <FileSystemModels> >(fileSystemDtos);



            var folderIDs   = new List <int?>();
            var folderNames = new List <string>();

            if (folderID != null)
            {
                try
                {
                    var folder = _fileSystemService.Get(userId, folderID);

                    if (folder != null)
                    {
                        var tupleIdName = _fileSystemService.GetFoldersIdNamePair(folderID, userId);
                        folderIDs   = tupleIdName.Item1;
                        folderNames = tupleIdName.Item2;
                    }
                    else
                    {
                        return(HttpNotFound());
                    }
                }
                catch (Exception ex)
                {
                    // some logic for user
                    return(View("Error"));
                }
            }

            switch (sortType)
            {
            case "sortByUploadDate":
                files = files.OrderBy(elem => elem.UploadDate).ToList();
                break;

            case "sortByUploadDateDescending":
                files = files.OrderByDescending(elem => elem.UploadDate).ToList();
                break;

            case "sortByCreationDate":
                files = files.OrderBy(elem => elem.CreationDate).ToList();
                break;

            case "sortByCreationDateDescending":
                files = files.OrderByDescending(elem => elem.CreationDate).ToList();
                break;

            case "sortBySize":
                files = files.OrderBy(elem => elem.Size).ToList();
                break;

            case "sortBySizeDescending":
                files = files.OrderByDescending(elem => elem.Size).ToList();
                break;

            default:
                break;
            }

            var viewModel = new UserFilesViewModels()
            {
                Files = files, FolderIDs = folderIDs, FolderNames = folderNames
            };

            if (viewType.Equals("BlockView"))
            {
                return(View("UserFilesBlock", viewModel));
            }

            return(View(viewModel));
        }
Exemplo n.º 2
0
        public ActionResult SearchFiles(string searchValue)
        {
            string viewType   = string.Empty;
            string searchType = string.Empty;

            if (Request.Cookies["viewType"] != null)
            {
                viewType = Request.Cookies["viewType"].Value.ToString();
            }
            else
            {
                Response.Cookies["viewType"].Value = "List";
            }
            if (Request.Cookies["searchType"] != null)
            {
                searchType = Request.Cookies["searchType"].Value.ToString();
            }
            else
            {
                Response.Cookies["searchType"].Value = "SearchByName";
            }

            string userId = User.Identity.GetUserId();
            List <FileSystemModels>     files = null;
            IEnumerable <FileSystemDTO> allFileSystemDtos;
            IEnumerable <FileSystemDTO> fileSystemDtos;

            try
            {
                allFileSystemDtos = _fileSystemService.GetAllUserFileSystem(userId);

                if (searchType.Equals("SearchByName"))
                {
                    fileSystemDtos = allFileSystemDtos.Where(file => file.Name.ToLower().Contains(searchValue.ToLower()));
                }
                else
                {
                    fileSystemDtos = allFileSystemDtos.Where(file => file.Tags.Any(tag => tag.Name.ToLower().Contains(searchValue.ToLower())));
                }

                if (!fileSystemDtos.Any())
                {
                    return(View(viewName: "SearchZeroResult"));
                }
            }
            catch (Exception)
            {
                // some logic for user
                return(View("Error"));
            }

            //Mapper.Initialize(cfg => cfg.CreateMap<FileSystemDTO, FileSystemModels>());

            Mapper.Initialize(cfg => cfg.CreateMap <FileSystemDTO, FileSystemModels>()
                              .ForMember(to => to.Tags, opt => opt.MapFrom(from => from.Tags.Select(o => new TagModels {
                Id = o.Id, Name = o.Name
            }).ToList())));

            files = Mapper.Map <IEnumerable <FileSystemDTO>, List <FileSystemModels> >(fileSystemDtos);

            var viewModel = new UserFilesViewModels()
            {
                Files = files, FolderIDs = new List <int?>(), FolderNames = new List <string>()
            };

            if (viewType.Equals("BlockView"))
            {
                return(View("UserFilesBlock", viewModel));
            }

            return(View("UserFiles", viewModel));
        }