コード例 #1
0
        public async Task <IActionResult> UploadLodgingFile(int userId, FileForUploadDto fileDto)
        {
            var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            if (currentUserId == 0)
            {
                return(Unauthorized());
            }
            ArrayList returnRows = new ArrayList();

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


            var file = fileDto.File;

            if (file.Length > 0)
            {
                var guestStays = _fileReader.GetPdfText(file);

                foreach (string guestStay in guestStays)
                {
                    var rowForUpload = _fileService.ParseDlsReportRow(guestStay, uploadId).Result;
                    if (rowForUpload == null)
                    {
                        continue;
                    }

                    if (rowForUpload.RoomId == 0 ||
                        rowForUpload.BuildingId == 0 ||
                        rowForUpload.FirstName == null ||
                        rowForUpload.LastName == null ||
                        rowForUpload.CheckInDate == null ||
                        rowForUpload.CheckOutDate == null)
                    {
                        returnRows.Add(rowForUpload);
                    }
                    else
                    {
                        await _fileService.SaveFileRowAsync(rowForUpload);

                        uploadToAdd.GuestsAdded += 1;
                    }
                }

                await _fileService.SaveUpload(uploadToAdd);
            }
            return(Ok(returnRows));
        }
コード例 #2
0
ファイル: FileController.cs プロジェクト: UMKalayci/DYS
 public IActionResult Upload(FileForUploadDto model)
 {
     byte[] fileBytes;
     if (model.File.Length > 0)
     {
         using (var ms = new MemoryStream())
         {
             model.File.CopyTo(ms);
             fileBytes = ms.ToArray();
         }
         model.UserId = Convert.ToInt32(User.FindFirst(ClaimTypes.NameIdentifier).Value);
         var result = _fileService.UploadFileToBlob(model, fileBytes, AzureConnectionString);
         if (result.Success)
         {
             return(RedirectToAction("Upload"));
         }
     }
     return(Ok());
 }
コード例 #3
0
        public async Task <IActionResult> UploadFile(int gameId, [FromForm] FileForUploadDto fileForUploadDto)
        {
            var gameFromRepo = await _repo.GetGame(gameId);

            var file = fileForUploadDto.File;

            if (file.Length > 0)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await file.CopyToAsync(memoryStream);

                    gameFromRepo.DownloadFile = memoryStream.ToArray();
                    await _repo.SaveAll();

                    return(Ok());
                }
            }

            return(BadRequest("Could not upload file"));
        }
コード例 #4
0
 public IResult UploadFileToBlob(FileForUploadDto fileDto, byte[] fileData, string accessKey)
 {
     try
     {
         var _task = Task.Run(() => this.UploadFileToBlobAsync(fileDto.File.FileName, fileData, fileDto.File.ContentType, accessKey));
         _task.Wait();
         string filePath = _task.Result;
         File   file     = new File();
         file.FileName    = fileDto.FileName;
         file.IsPrivate   = fileDto.IsPrivate;
         file.Description = fileDto.FileDescription;
         file.FilePath    = filePath;
         file.CreateUser  = fileDto.UserId;
         file.FileType    = fileDto.File.ContentType;
         _fileDal.Add(file);
         return(new SuccessResult("Dosya ekleme işlemi başarılı"));
     }
     catch (Exception ex)
     {
         return(new ErrorResult("Dosya ekleme işlemi sırasında hata oluştu"));
     }
 }
コード例 #5
0
        public async Task <IActionResult> UploadFile([FromForm] FileForUploadDto fileForUploadDto)
        {
            FileModel      file          = null;
            HttpStatusCode uploadResult  = HttpStatusCode.BadRequest;
            var            fileForUpload = fileForUploadDto.File;

            if (fileForUpload.Length > 0)
            {
                string path = "/Files/" + fileForUpload.FileName;
                using (var fileStream = new FileStream(_appEnvironment.WebRootPath + path, FileMode.Create))
                {
                    await fileForUpload.CopyToAsync(fileStream);

                    uploadResult = HttpStatusCode.OK;
                }
                var userName    = HttpContext.Connection.Id;
                var currentDate = DateTime.Now;
                var fileType    = System.IO.Path.GetExtension(fileForUpload.FileName).ToLower();
                file = new FileModel
                {
                    Name         = fileForUpload.FileName,
                    FileType     = fileType,
                    FileSize     = fileForUpload.Length / 1024,
                    Path         = path,
                    UserName     = userName,
                    UploadedDate = currentDate
                };
                _context.Files.Add(file);
                _context.SaveChanges();
            }

            if (uploadResult == HttpStatusCode.OK)
            {
                return(Ok(file));
            }
            return(BadRequest("File not uploaded"));
        }
コード例 #6
0
ファイル: FileController.cs プロジェクト: UMKalayci/DYS
        public IActionResult Upload()
        {
            var model = new FileForUploadDto();

            return(View(model));
        }
コード例 #7
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));
        }
コード例 #8
0
        public async Task <IActionResult> UploadExManifestFile(int userId, FileForUploadDto fileDto, [FromQuery] ManifestFileUploadUserParams 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 sheets = _fileReader.GetExcelSheets(fullPath);
                foreach (var sheet in sheets)
                {
                    var headers = _fileReader.GetExcelSheetHeaders(sheet, 2);

                    if (!headers.Contains("PERSONAL ID"))
                    {
                        continue;
                    }

                    for (int i = (sheet.FirstRowNum + 3); i <= sheet.LastRowNum; i++) //Read Excel File
                    {
                        IRow row = sheet.GetRow(i);
                        if (row == null ||
                            row.Cells.All(d => d.CellType == CellType.Blank) ||
                            row.GetCell(0).StringCellValue.IndexOf("For Official Use", StringComparison.OrdinalIgnoreCase) >= 0)
                        {
                            continue;
                        }

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

                        if (rowForUpload == null)
                        {
                            continue;
                        }

                        int.TryParse(Regex.Replace(sheet.SheetName, @"[^\d]", ""), out int chalkNumber);

                        if (chalkNumber != 0)
                        {
                            rowForUpload.Chalk = chalkNumber;
                        }


                        //stay buildingId is nullable
                        if (rowForUpload.Gender == null ||
                            rowForUpload.FirstName == null ||
                            rowForUpload.LastName == null ||
                            rowForUpload.UnitId == 0)
                        {
                            returnRows.Add(rowForUpload);
                        }
                        else
                        {
                            rowForUpload = await _fileService.AutoRoomDataRow(rowForUpload, userParams);

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