コード例 #1
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            PersonalDocument = await _context.PersonalDocument.FindAsync(id);

            if (PersonalDocument != null)
            {
                if (PersonalDocument.UserId == _userManager.GetUserId(User) &&
                    !(PersonalDocument.Valid ?? false))
                {
                    if (!String.IsNullOrEmpty(PersonalDocument.FilePath) &&
                        System.IO.File.Exists(Path.Combine(_environment.ContentRootPath, "uploads", PersonalDocument.FilePath)))
                    {
                        System.IO.File.Delete(Path.Combine(_environment.ContentRootPath, "uploads", PersonalDocument.FilePath));
                    }
                    _context.PersonalDocument.Remove(PersonalDocument);
                    await _context.SaveChangesAsync();
                }
            }

            return(RedirectToPage("./Index"));
        }
コード例 #2
0
        // To protect from overposting attacks, enable the specific properties you want to bind to, for
        // more details, see https://aka.ms/RazorPagesCRUD.
        public async Task <IActionResult> OnPostAsync()
        {
            //ensure that only updates on current auth user
            PersonalDocument.UserId = _userManager.GetUserId(User);
            PersonalDocument old = await _context.PersonalDocument
                                   .AsNoTracking()
                                   .Where(p => p.UserId == _userManager.GetUserId(User))
                                   .Include(p => p.User)
                                   .FirstOrDefaultAsync(m => m.Id == PersonalDocument.Id);

            if (!String.Equals(old.DocumentNumber, PersonalDocument.DocumentNumber) ||
                !String.Equals(old.DocumentType, PersonalDocument.DocumentType) ||
                !String.Equals(old.FilePath, PersonalDocument.FilePath)
                )
            {
                PersonalDocument.Valid = null;
            }
            this.ModelState.Clear();
            if (!TryValidateModel(PersonalDocument))
            {
                return(Page());
            }

            if (Upload != null && Upload.ContentType.Equals("application/pdf") && Upload.Length <= 1000000)
            {
                string fileName = $"{PersonalDocument.UserId}_PersonalDocument_{DateTime.Now.ToString("yyyyMMddHHmmss")}.pdf";
                var    file     = Path.Combine(_environment.ContentRootPath, "uploads", fileName);
                using (var fileStream = new FileStream(file, FileMode.Create))
                {
                    await Upload.CopyToAsync(fileStream);

                    if (!String.IsNullOrEmpty(old.FilePath) &&
                        System.IO.File.Exists(Path.Combine(_environment.ContentRootPath, "uploads", old.FilePath)))
                    {
                        System.IO.File.Delete(Path.Combine(_environment.ContentRootPath, "uploads", old.FilePath));
                    }
                    PersonalDocument.FilePath = fileName;
                }
            }

            _context.Attach(PersonalDocument).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PersonalDocumentExists(PersonalDocument.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(RedirectToPage("./Index"));
        }
コード例 #3
0
        public async Task <string> UpdatePersonalDocument(int id, PersonalDocument personalDocument)
        {
            try
            {
                var res = await _repository.UpdatePersonalDocument(id, personalDocument);

                return(res);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #4
0
        public async Task <PersonalDocument> CreateNewPersonalDocument(PersonalDocument personalDocument)
        {
            try
            {
                var res = await _repository.CreateNewPersonalDocument(personalDocument);

                return(res);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #5
0
        public async Task <PersonalDocument> CreateNewPersonalDocument(PersonalDocument personalDocument)
        {
            try
            {
                _context.PersonalDocuments.Add(personalDocument);
                await _context.SaveChangesAsync();

                return(personalDocument);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #6
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            PersonalDocument = await _context.PersonalDocument
                               .Include(p => p.User).FirstOrDefaultAsync(m => m.Id == id);

            if (PersonalDocument == null)
            {
                return(NotFound());
            }
            return(Page());
        }
コード例 #7
0
        public async Task <IActionResult> CreatePersonalDocument(PersonalDocument personalDocument)
        {
            try
            {
                var response = await _service.CreateNewPersonalDocument(personalDocument);

                if (response != null)
                {
                    return(Ok(response));
                }
                return(StatusCode(StatusCodes.Status204NoContent));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #8
0
        public override async Task <string> Execute(FileRequest request)
        {
            var fileId = await _fileStorage.SaveAsync(request.File, request.FileName);

            var newFileRecord = new PersonalDocument()
            {
                FileUrl     = fileId,
                Name        = request.FileName,
                UserId      = request.UserId,
                ContentType = request.ContentType
            };

            await _dbContext.PersonalDocuments.AddAsync(newFileRecord);

            await _dbContext.SaveChangesAsync();

            return(fileId);
        }
コード例 #9
0
        public override async Task <string> Execute(FileRequest request)
        {
            var profile = await _dbContext.PersonalData
                          .Include(p => p.ProfilePictureFile)
                          .FirstOrDefaultAsync(p => p.UserId == request.UserId);

            if (profile != null && profile.ProfilePictureFileId > 0)
            {
                var file = profile.ProfilePictureFile;
                _fileStorage.Delete(file.FileUrl);
                _dbContext.PersonalDocuments.Remove(file);
            }

            var fileId = await _pictureSaver.SaveAsync(request.File, request.FileName);

            var newFileRecord = new PersonalDocument()
            {
                FileUrl     = fileId,
                Name        = request.FileName,
                UserId      = request.UserId,
                ContentType = request.ContentType
            };

            await _dbContext.PersonalDocuments.AddAsync(newFileRecord);

            if (profile != null)
            {
                profile.ProfilePictureFileId = newFileRecord.Id;
            }
            else
            {
                profile = new PersonalData()
                {
                    UserId = request.UserId,
                    ProfilePictureFileId = newFileRecord.Id,
                };
                await _dbContext.PersonalData.AddAsync(profile);
            }
            await _dbContext.SaveChangesAsync();

            return(fileId);
        }
コード例 #10
0
        public async Task <string> UpdatePersonalDocument(int id, PersonalDocument personalDocument)
        {
            try
            {
                var res = await _context.PersonalDocuments.FirstOrDefaultAsync(m => m.PersonalDocumentId == id);

                res.Document   = personalDocument.Document;
                res.ValidUntil = personalDocument.ValidUntil;
                res.Status     = personalDocument.Status;
                res.Details    = personalDocument.Details;
                res.Attachment = personalDocument.Attachment;
                _context.Update(res);
                await _context.SaveChangesAsync();

                return("Updated Record");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #11
0
        public async Task <IActionResult> UpdatePersonalDocument(int PersonalDocumentId, PersonalDocument personalDocument)
        {
            try
            {
                var res = await _service.UpdatePersonalDocument(PersonalDocumentId, personalDocument);

                if (res != null)
                {
                    return(Ok(res));
                }
                return(StatusCode(StatusCodes.Status204NoContent));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
コード例 #12
0
 private string PrintPersonalDocument(PersonalDocument document)
 {
     return(Strings.Resources.PassportDocuments);
 }