예제 #1
0
        // Edytuje nazwę pliku ebooka.
        public StatusResult <EditFileNameStatus> EditFileName(int id, FileNameDto dto)
        {
            var toEdit = context.Files
                         .SingleOrDefault(x => x.Id == id);

            if (toEdit == null)
            {
                return(new StatusResult <EditFileNameStatus>
                {
                    Status = EditFileNameStatus.BadId
                });
            }


            var directoryName    = hostingEnvironment.ContentRootPath + "/private_static/files";
            var isFilenameUnique = !System.IO.Directory.GetFiles(directoryName).Select(x => x.Split(Path.DirectorySeparatorChar).Last().Split('.').First()).Any(x => x == dto.Name);

            if (!isFilenameUnique)
            {
                return(new StatusResult <EditFileNameStatus>
                {
                    Status = EditFileNameStatus.Conflict
                });
            }

            System.IO.File.Move($"{hostingEnvironment.ContentRootPath}{toEdit.Name}", $"{hostingEnvironment.ContentRootPath}/private_static/files/{dto.Name}.{toEdit.Name.Split('.').Last()}");
            toEdit.Name = $"/private_static/files/{dto.Name}.{toEdit.Name.Split('.').Last()}";
            context.SaveChanges();

            return(new StatusResult <EditFileNameStatus>
            {
                Status = EditFileNameStatus.Ok
            });
        }
        internal void GenerateResponseWithError(FileNameDto file, IEnumerable <ErrorDto> errorList)
        {
            var fileInformation = new List <string>();
            var serializeError  = serialize.Execute(errorList);

            if (serializeError.Failure)
            {
                fileInformation.Add(serializeError.ErrorList.FirstOrDefault().Message);
            }
            fileInformation.Add(serializeError.Result);

            GenerateFile(fileInformation, file.BuildNameErrorResponse());
            MoveFileReqProcessed(file);
        }
예제 #3
0
        public async ValueTask <IActionResult> DeleteAsync(FileNameDto fileName)
        {
            string path     = this.GetPathTo(fileName.FileName);
            var    fileInfo = new FileInfo(path);

            if (!fileInfo.Exists)
            {
                return(StatusCode((int)HttpStatusCode.BadRequest, new { Message = $"File not found." }));
            }

            fileInfo.Delete();

            await ValueTask.CompletedTask;

            return(Accepted(new { Message = "The file was deleted." }));
        }
        internal void GenerateResponse(FileNameDto file)
        {
            var fileInformation   = new List <string>();
            var serializeResponse = serialize.Execute <SellOrderResponseDto>(file.SellOrderResponse);

            if (serializeResponse.Failure)
            {
                fileInformation.Add(serializeResponse.ErrorList.FirstOrDefault().Message);
            }
            fileInformation.Add(serializeResponse.Result);

            fileManager.CreateFile(
                Path.Combine(directoryPath.FileResponseInPath, serializeResponse.Failure ? file.BuildNameErrorResponse() : file.BuildNameResponse()),
                fileInformation);

            MoveFileReqProcessed(file);
        }
예제 #5
0
        internal OperationResult <FileNameDto> ProcessFile(FileNameDto processingFile)
        {
            var linesResult = fileManager.ReadLines(Path.Combine(directoryPathConfig.FileProcess, processingFile.FileInfoName));

            if (linesResult.Failure)
            {
                return(new OperationResult <FileNameDto>(ErrorDto.BuildTechnical(FAILURE_READ_FILE)));
            }
            var mapAndValidateProcess = MapAndValidateFileStructure(linesResult.Result);

            if (mapAndValidateProcess.Failure)
            {
                return(new OperationResult <FileNameDto>(mapAndValidateProcess.ErrorList));
            }
            processingFile.SellOrdersRequest = mapAndValidateProcess.Result;
            return(new OperationResult <FileNameDto>(processingFile));
        }
예제 #6
0
        public IActionResult EditFileName(int id, [FromBody] FileNameDto dto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var editStatus = bookService.EditFileName(id, dto).Status;

            switch (editStatus)
            {
            case EditFileNameStatus.BadId:
                return(NotFound());

            case EditFileNameStatus.Conflict:
                return(StatusCode(409));

            case EditFileNameStatus.Ok:
                return(NoContent());

            default:
                return(StatusCode(500));
            }
        }
 private void MoveFileReqProcessed(FileNameDto file)
 {
     var moveFileToBackUp = fileManager.MoveFile(Path.Combine(directoryPath.FileProcess, file.FileInfoName), Path.Combine(directoryPath.BackUpFilesRequestPath, file.FileInfoName));
 }