public async Task <bool> CreateDocument(DocumentsCreateRequest request)
        {
            var sessions = _httpContextAccessor
                           .HttpContext
                           .Session
                           .GetString(SystemConstants.AppSettings.Token);

            var client = _httpClientFactory.CreateClient("BackendApi");

            client.BaseAddress = new Uri(_configuration[SystemConstants.AppSettings.BaseAddress]);
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", sessions);
            var requestContent = new MultipartFormDataContent();
            var claimsIdentity = this._httpContextAccessor.HttpContext.User.Identity as ClaimsIdentity;

            if (request.DocumentFile != null)
            {
                byte[] data;
                using (var br = new BinaryReader(request.DocumentFile.OpenReadStream()))
                {
                    data = br.ReadBytes((int)request.DocumentFile.OpenReadStream().Length);
                }
                ByteArrayContent bytes = new ByteArrayContent(data);
                requestContent.Add(bytes, "documentFile", request.DocumentFile.FileName);
            }
            var userId = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier)?.Value.ToString();

            requestContent.Add(new StringContent(userId), "userId");
            requestContent.Add(new StringContent(string.IsNullOrEmpty(request.FalcultyOfDocumentID.ToString()) ? "" : request.FalcultyOfDocumentID.ToString()), "FalcultyOfDocumentID");
            requestContent.Add(new StringContent(string.IsNullOrEmpty(request.MagazineID.ToString()) ? "" : request.MagazineID.ToString()), "MagazineID");

            var response = await client.PostAsync($"/api/documents/", requestContent);

            return(response.IsSuccessStatusCode);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Create([FromForm] DocumentsCreateRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var documentId = await _documentsService.Create(request);

            if (documentId == 0)
            {
                return(BadRequest());
            }
            var document = await _documentsService.GetById(documentId);

            return(CreatedAtAction(nameof(GetById), new { id = documentId }, document));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Create([FromForm] DocumentsCreateRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(View(request));
            }

            var result = await _documentApiClient.CreateDocument(request);

            if (result)
            {
                TempData["result"] = "Thêm mới sản phẩm thành công";
                return(RedirectToAction("Index", "Document"));
            }

            ModelState.AddModelError("", "Thêm sản phẩm thất bại");
            return(View(request));
        }
        public async Task <long> Create(DocumentsCreateRequest request)
        {
            var user = new User()
            {
            };
            var document = new Document()
            {
                UserID = request.UserID,
                FacultyOfDocumentID = request.FalcultyOfDocumentID,
                MagazineID          = request.MagazineID,
                Caption             = "Document file",
                CreateOn            = DateTime.Now.Date,
            };

            if (request.DocumentFile != null)
            {
                user.Documents = new List <Document>()
                {
                    new Document()
                    {
                        Caption      = "Document file",
                        CreateOn     = DateTime.Now.Date,
                        FileSize     = request.DocumentFile.Length,
                        DocumentPath = await this.SaveFile(request.DocumentFile),
                    }
                };
            }
            if (request.FalcultyOfDocumentID == 1)
            {
                SystemConstants.SendMail("*****@*****.**");
            }
            _context.Documents.Add(document);
            await _context.SaveChangesAsync();

            return(document.ID);
        }