Exemple #1
0
        public async Task <ActionResult> UploadFile(OrderViewModel order)
        {
            var                currentUser   = _applicationUserService.GetUserById(Guid.Parse(User.Identity.GetUserId()));
            FileViewModel      fileViewModel = new FileViewModel();
            HttpPostedFileBase file          = Request.Files[0];

            fileViewModel.OrderId  = order.Id;
            fileViewModel.FileName = Path.GetFileName(file.FileName);
            fileViewModel.FileType = file.ContentType;
            using (var binaryReader = new BinaryReader(file.InputStream)) {
                fileViewModel.Data = binaryReader.ReadBytes(file.ContentLength);
            }
            FileDTO.FileDTO fileDTO = _mapper.Map <FileViewModel, FileDTO.FileDTO>(fileViewModel);
            ServerRequest   result  = await _fileStorageService.UploadFileAsync(fileDTO);

            if (!result.ErrorOccured)
            {
                s_logger.Info("User " + currentUser.Id + " upload file ");
                return(RedirectToAction("GetTakenOrders", "Musician"));
            }
            else
            {
                s_logger.Error("Error when user " + currentUser.Id + " try to upload file ");
                ViewBag.Error = result.Message;
                return(RedirectToAction("GetTakenOrders", "Musician"));
            }
        }
        // POST api/values
        public async void PostFile(FileDTO.FileDTO fileDTO)
        {
            string folderPath = System.Web.HttpContext.Current.Server.MapPath("~\\Files" + $"\\{fileDTO.OrderId}");

            Directory.CreateDirectory(folderPath);
            using (FileStream fileStream = new FileStream(Path.Combine(folderPath, fileDTO.FileName), FileMode.Create)) {
                await fileStream.WriteAsync(fileDTO.Data, 0, fileDTO.Data.Length);
            }
        }
        public async Task <ServerRequest> UploadFileAsync(FileDTO.FileDTO fileDTO)
        {
            var serverRequest = new ServerRequest();

            try {
                HttpClient _client = new HttpClient();

                _client.DefaultRequestHeaders.Accept.Clear();
                _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/bson"));

                MediaTypeFormatter bsonFormatter = new BsonMediaTypeFormatter();

                await _client.PostAsync("http://files.localhost.net/api/values/PostFile?id", fileDTO, bsonFormatter);

                return(serverRequest);
            }
            catch {
                serverRequest.ErrorOccured = true;
                serverRequest.Message      = "Error was occcured when you try Upload File";
                return(serverRequest);
            }
        }