示例#1
0
        /// <summary>
        /// Инициализация оплат
        /// </summary>
        /// <returns></returns>
        private async Task PaymentsInitAsync()
        {
            if (_dbContext.Payments.Count() == 0)
            {
                var casherRole = await _roleManager.FindByNameAsync("casher");

                var cahserUserRole = await _dbContext.UserRoles
                                     .FirstOrDefaultAsync(ur => ur.RoleId.Equals(casherRole.Id));

                var casherProfile = await _dbContext.Profiles
                                    .Include(p => p.User)
                                    .FirstOrDefaultAsync(p => p.User.Id.Equals(cahserUserRole.UserId));

                for (int i = 0; i < 200; i++)
                {
                    var profileToPaymet = await _dbContext.Profiles
                                          .Include(p => p.Tariff)
                                          .Where(p => !p.Tariff.Name.Equals("Коллегиальный"))
                                          .OrderBy(o => Guid.NewGuid())
                                          .FirstOrDefaultAsync();

                    var payment = new Payment()
                    {
                        SourceProfile      = casherProfile,
                        DestinationProfile = profileToPaymet,
                        Role    = casherRole,
                        Amount  = profileToPaymet.Tariff.Price + 10,
                        Comment = "Инициализатор"
                    };

                    profileToPaymet.BalanceOfCash += payment.Amount;

                    await Task.Run(() =>
                    {
                        _dbContext.Update(profileToPaymet);
                        _dbContext.Add(payment);
                    });
                }

                await _dbContext.SaveChangesAsync();
            }
        }