Пример #1
0
            public async Task <Unit> Handle(UpdateEnterpriseCommand request, CancellationToken cancellationToken)
            {
                try
                {
                    var entity = await _context.Enterprises
                                 .FirstOrDefaultAsync(x => x.Id == request.EnterpriseId, cancellationToken)
                                 ?? throw new Exception($@"Предприятие с идентификатором {request.EnterpriseId} не найдено.");

                    _mapper.Map(request, entity);

                    if (request.UserId.HasValue)
                    {
                        var user = await _userManager.FindByIdAsync(request.UserId.Value.ToString())
                                   ?? throw new Exception($@"Пользователь с идентификатором {request.UserId} не найден.");

                        entity.User = user;
                    }

                    await _context.SaveChangesAsync(cancellationToken);

                    return(Unit.Value);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
Пример #2
0
            public async Task <Unit> Handle(UserChangePasswordCommand request, CancellationToken cancellationToken)
            {
                try
                {
                    var user = await _userManager.FindByIdAsync(request.UserId.ToString())
                               ?? throw new Exception($@"Пользователь с идентификатором {request.UserId} не найден.");

                    var token = await _userManager.GeneratePasswordResetTokenAsync(user);

                    (await _userManager.ResetPasswordAsync(user, token, request.NewPassword)).CheckResult();

                    (await _userManager.UpdateSecurityStampAsync(user)).CheckResult();

                    user.PasswordText = request.NewPassword;

                    await _context.SaveChangesAsync(cancellationToken);

                    return(Unit.Value);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
Пример #3
0
            public async Task <Unit> Handle(UpdateTemplateCommand request, CancellationToken cancellationToken)
            {
                try
                {
                    var template =
                        await _context.Templates.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken)
                        ?? throw new Exception($"Шаблон с идентификатором {request.Id} не найден.");

                    _mapper.Map(request, template);

                    await using var memoryStream = new MemoryStream();
                    await request.FormFile.CopyToAsync(memoryStream, cancellationToken);

                    template.Content = memoryStream.ToArray();

                    template.FileName    = request.FormFile.FileName;
                    template.ContentType = request.FormFile.ContentType;

                    await _context.SaveChangesAsync(cancellationToken);

                    return(Unit.Value);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
Пример #4
0
            public async Task <Unit> Handle(UploadVetisStatementCommand request, CancellationToken cancellationToken)
            {
                try
                {
                    var user = await _context.Users
                               .Include(x => x.Enterprises)
                               .FirstOrDefaultAsync(x => x.Id == request.UserId, cancellationToken)
                               ?? throw new Exception($@"Пользователь с идентификатором {request.UserId} не найден.");

                    await using var memoryStream = new MemoryStream();
                    await request.FormFile.CopyToAsync(memoryStream, cancellationToken);

                    var path = await _fileService.Save(request.FormFile.FileName, memoryStream.ToArray());

                    user.VetisStatement = new MercuryFileInfo
                    {
                        Name        = request.FormFile.FileName,
                        Path        = path,
                        ContentType = request.FormFile.ContentType
                    };

                    await _context.SaveChangesAsync(cancellationToken);

                    return(Unit.Value);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
Пример #5
0
            public async Task <Unit> Handle(CreateTemplateCommand request, CancellationToken cancellationToken)
            {
                try
                {
                    var entity = _mapper.Map <Template>(request);

                    await using var memoryStream = new MemoryStream();
                    await request.FormFile.CopyToAsync(memoryStream, cancellationToken);

                    entity.Content = memoryStream.ToArray();

                    entity.FileName    = request.FormFile.FileName;
                    entity.ContentType = request.FormFile.ContentType;

                    _context.Templates.Add(entity);

                    await _context.SaveChangesAsync(cancellationToken);

                    return(Unit.Value);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
            public async Task <Unit> Handle(CreateUserFromApplicantCommand request, CancellationToken cancellationToken)
            {
                try
                {
                    var applicant = await _context.Applicants
                                    .FirstOrDefaultAsync(x => x.Id == request.ApplicantId, cancellationToken)
                                    ?? throw new Exception($@"Заявитель с идентификатором {request.ApplicantId} не найден.");

                    if (applicant.Status == ApplicantStatus.Confirmed)
                    {
                        throw new Exception($"Заявитель {applicant.Inn} уже зарегистрирован как пользователь");
                    }

                    var password = _passwordService.GeneratePassword(10);

                    await _mediator.Send(new CreateUserCommand
                    {
                        UserName        = applicant.Inn,
                        Password        = password,
                        Inn             = applicant.Inn,
                        Title           = applicant.Title,
                        Contact         = applicant.Email,
                        PhoneNumber     = applicant.PhoneNumber,
                        MercuryLogin    = applicant.MercuryLogin,
                        MercuryPassword = applicant.MercuryPassword
                    }, cancellationToken);

                    var user = await _userManager.Users.AsNoTracking()
                               .Include(x => x.Enterprises)
                               .FirstOrDefaultAsync(x => x.NormalizedUserName.Equals(applicant.Inn), cancellationToken)
                               ?? throw new Exception($@"Пользователь с именем {applicant.Inn} не найден.");

                    await _mediator.Send(new EditUserRolesCommand
                    {
                        UserId = user.Id.ToString(),
                        Roles  = new [] { _roleOptions.Guest }
                    }, cancellationToken);

                    applicant.Status = ApplicantStatus.Confirmed;

                    await _context.SaveChangesAsync(cancellationToken);

                    return(Unit.Value);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
Пример #7
0
            public async Task <Unit> Handle(CreateApplicantCommand request, CancellationToken cancellationToken)
            {
                try
                {
                    var applicant = _mapper.Map <Applicant>(request);

                    applicant.Status = ApplicantStatus.New;

                    _context.Applicants.Add(applicant);

                    await _context.SaveChangesAsync(cancellationToken);

                    return(Unit.Value);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
            public async Task <Unit> Handle(DeleteEnterpriseCommand request, CancellationToken cancellationToken)
            {
                try
                {
                    var entity = await _context.Enterprises
                                 .FirstOrDefaultAsync(x => x.Id == request.EnterpriseId, cancellationToken)
                                 ?? throw new Exception($@"Предприятие с идентификатором {request.EnterpriseId} не найдено.");

                    _context.Enterprises.Remove(entity);

                    await _context.SaveChangesAsync(cancellationToken);

                    return(Unit.Value);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
Пример #9
0
            public async Task <Unit> Handle(CreateEnterpriseCommand request, CancellationToken cancellationToken)
            {
                try
                {
                    var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == request.UserId, cancellationToken)
                               ?? throw new Exception($@"Пользователь с идентификатором {request.UserId} не найден.");

                    var entity = _mapper.Map <Enterprise>(request);

                    entity.User = user;

                    _context.Enterprises.Add(entity);

                    await _context.SaveChangesAsync(cancellationToken);

                    return(Unit.Value);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }