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)); }
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)); }