コード例 #1
0
        public async Task <PagedList <Upload> > GetUploadsPagination(UploadUserParams userParams)
        {
            var uploads = await _fileRepo.GetUploadsPagination(userParams,
                                                               new Expression <Func <Upload, object> >[] {
                u => u.User
            });

            return(uploads);
        }
コード例 #2
0
        public async Task <IActionResult> GetUploadsPagination([FromQuery] UploadUserParams userParams)
        {
            var uploads = await _fileService.GetUploadsPagination(userParams);

            Response.AddPagination(uploads.CurrentPage,
                                   uploads.PageSize,
                                   uploads.TotalCount,
                                   uploads.TotalPages);

            return(Ok(uploads));
        }
コード例 #3
0
ファイル: FileRepository.cs プロジェクト: 18cs/LodgeNET
        public async Task <PagedList <Upload> > GetUploadsPagination(
            UploadUserParams userParams,
            Expression <Func <Upload, object> >[] includeProperties = null,
            Expression <Func <Upload, bool> > filter = null)
        {
            var uploads = _context.Uploads.AsQueryable();

            if (includeProperties != null)
            {
                foreach (Expression <Func <Upload, object> > includeProperty in includeProperties)
                {
                    uploads = uploads.Include <Upload, object> (includeProperty);
                }
            }

            if (filter != null)
            {
                uploads = uploads.Where(filter);
            }

            if (userParams.DateUploaded != null)
            {
                uploads = uploads.Where(u => u.DateUploaded == userParams.DateUploaded);
            }

            if (userParams.FileName != null)
            {
                uploads = uploads.Where(u => u.FileName == userParams.FileName);
            }

            if (userParams.UserId != null)
            {
                uploads = uploads.Where(u => u.User.Id == userParams.UserId);
            }

            return(await PagedList <Upload> .CreateAsync(uploads, userParams.PageNumber, userParams.PageSize));
        }
コード例 #4
0
        public async Task <IActionResult> UploadUnaccompaniedFile(int userId, FileForUploadDto fileDto, UploadUserParams userParams)
        {
            var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            if (currentUserId == 0)
            {
                return(Unauthorized());
            }

            ArrayList returnRows  = new ArrayList();
            IFormFile file        = Request.Form.Files[0];
            string    folderName  = "Upload";
            string    webRootPath = _hostingEnvironment.WebRootPath;
            string    newPath     = System.IO.Path.Combine(webRootPath, folderName);

            if (!Directory.Exists(newPath))
            {
                Directory.CreateDirectory(newPath);
            }
            if (file.Length > 0)
            {
                var uploadToAdd = new Upload();
                uploadToAdd.FileName     = fileDto.File.FileName;
                uploadToAdd.DateUploaded = DateTime.Now;
                uploadToAdd.UserId       = currentUserId;
                uploadToAdd.GuestsAdded  = 0;

                int uploadId = await _fileService.AddUpload(uploadToAdd);

                string sFileExtension = System.IO.Path.GetExtension(file.FileName).ToLower();
                string fullPath       = System.IO.Path.Combine(newPath, file.FileName);
                using (var stream = new FileStream(fullPath, FileMode.Create)) {
                    file.CopyTo(stream);
                }

                var sheet   = _fileReader.GetExcelSheet(fullPath);
                var headers = _fileReader.GetExcelSheetHeaders(sheet);

                for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++) //Read Excel File
                {
                    IRow row = sheet.GetRow(i);
                    if (row == null || row.Cells.All(d => d.CellType == CellType.Blank))
                    {
                        continue;
                    }

                    var rowForUpload = await _fileService.ParseUnaccompaniedExcelRow(row, headers, uploadId);

                    //stay buildingId is nullable
                    if (rowForUpload.RoomId == 0 ||
                        rowForUpload.BuildingId == 0 ||
                        rowForUpload.FirstName == null ||
                        rowForUpload.LastName == null ||
                        rowForUpload.UnitId == 0)
                    {
                        returnRows.Add(rowForUpload);
                    }
                    else
                    {
                        await _fileService.SaveFileRowAsync(rowForUpload);

                        uploadToAdd.GuestsAdded += 1;
                    }
                }

                await _fileService.SaveUpload(uploadToAdd);

                if (System.IO.File.Exists(fullPath))
                {
                    System.IO.File.Delete(fullPath);
                }
            }
            return(Ok(returnRows));
        }
コード例 #5
0
        public async Task <IActionResult> DataRows(int userId, [FromBody] FileRowForUploadDto[] fileRows, [FromQuery] UploadUserParams userParams)
        {
            var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            if (currentUserId == 0)
            {
                return(Unauthorized());
            }

            ArrayList returnRows = new ArrayList();

            int uploadKickbacksId = fileRows[0].UploadId ?? default(int);

            var uploadKickbacks = await _fileService.GetUploadById(uploadKickbacksId);

            foreach (FileRowForUploadDto fileRow in fileRows)
            {
                //TODOTEST
                await _fileService.ParseDataRow(fileRow);

                if (fileRow.RoomId == 0 ||
                    fileRow.BuildingId == 0 ||
                    fileRow.FirstName == null ||
                    fileRow.LastName == null)
                {
                    returnRows.Add(fileRow);
                }
                else
                {
                    //TODO add unit parse
                    await _fileService.SaveFileRowAsync(fileRow);

                    uploadKickbacks.GuestsAdded += 1;
                }
            }

            await _fileService.SaveUpload(uploadKickbacks);

            return(Ok(returnRows));
        }