public async Task <CertificateDetailsViewModel> CreateAsync(CertificateCreateInputModel certificatesCreateInputModel, string userId) { var workoutActivity = this.workoutActivityRepository.All() .FirstOrDefault(x => x.Name == certificatesCreateInputModel.Activity); if (workoutActivity == null) { throw new NullReferenceException(string.Format(ServiceConstants.Certificate.NullReferenceWorkoutActivityName, certificatesCreateInputModel.Activity)); } var user = this.usersRepository.All() .FirstOrDefault(x => x.Id == userId); var certificate = new Certificate { Activity = workoutActivity, IssuedBy = certificatesCreateInputModel.IssuedBy, IssuedOn = certificatesCreateInputModel.IssuedOn, ExpiresOn = certificatesCreateInputModel.ExpiresOn, Description = certificatesCreateInputModel.Description, TrainConnectedUser = user, TrainConnectedUserId = user.Id, }; await this.certificatesRepository.AddAsync(certificate); await this.certificatesRepository.SaveChangesAsync(); var certificateDetailsViewModel = AutoMapper.Mapper.Map <CertificateDetailsViewModel>(certificate); return(certificateDetailsViewModel); }
public async Task <int> CreateAsync(CertificateCreateInputModel input, string userId) { var extension = Path.GetExtension(input.InputFile.FileName).ToLower().TrimStart('.'); var name = Path.GetFileNameWithoutExtension(input.InputFile.FileName); var fileName = Path.GetFileName(input.InputFile.FileName); var container = this.blobServiceClient.GetBlobContainerClient(GlobalConstants.AzureStorageBlobContainerNameCertificates); var blobClient = container.GetBlobClient(fileName); using var fileStream = input.InputFile.OpenReadStream(); await blobClient.UploadAsync(fileStream); var entity = new Certificate { FileName = name, FileExtension = extension, RemoteFileUrl = blobClient.Uri.AbsoluteUri, UserId = userId, }; await this.certificatesRepository.AddAsync(entity); await this.certificatesRepository.SaveChangesAsync(); return(entity.Id); }
public async Task <ActionResult> Post(CertificateCreateInputModel input) { // var userId = this.User.FindFirst(ClaimTypes.NameIdentifier).Value; // var user = await this.userManager.GetUserAsync(this.User); var user = await this.userManager.FindByEmailAsync("*****@*****.**"); var inputId = await this.certificatesService.CreateAsync(input, user.Id); var model = await this.certificatesService.GetByIdAsync <CertificateExportModel>(inputId); return(this.RedirectToAction(nameof(this.Index))); }
public async Task <IActionResult> Add(CertificateCreateInputModel certificateCreateInputModel) { if (!this.ModelState.IsValid) { this.ViewData["Activities"] = await this.GetAllWorkoutActivitiesAsSelectListItems(); return(this.View(certificateCreateInputModel)); } var userId = this.User.FindFirst(ClaimTypes.NameIdentifier).Value; var result = await this.certificatesService.CreateAsync(certificateCreateInputModel, userId); return(this.RedirectToAction(nameof(this.Details), new { id = result.Id })); }