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);
        }
Ejemplo n.º 2
0
        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 }));
        }