/// <summary> /// Проверка срока действия тарифа /// </summary> /// <param name="isTimer">Признак запуска таймера</param> public void CheckProfilesForTariffExpiring(object isTimer = null) { using (_dbContext) { var iQuery = _dbContext.Profiles .Include(p => p.Tariff) .Where(p => p.Tariff.AmounfOfDays != 0 && !p.IsHolded && p.IsEnabled); var currDate = DateTime.Now; iQuery.ForEachAsync(async p => { try { await CheckTariffStatehAsync(p); _dbContext.Update(p); } catch (Exception ex) { } }).Wait(); try { _dbContext.SaveChanges(); } catch (Exception ex) { } } if (isTimer != null) { Console.WriteLine($"Tariff regulator by timer is success run. ({DateTime.Now})"); } }
public async Task <IActionResult> OnPostAsync() { var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Не могу загрузить аккаунт с ID '{_userManager.GetUserId(User)}'.")); } if (!ModelState.IsValid) { await LoadAsync(user); return(Page()); } var profile = await _dbContext.Profiles .Include(p => p.Account) .AsNoTracking() .FirstOrDefaultAsync(p => p.Account.Id.Equals(user.Id)); profile.FirstName = Input.FName; profile.SecondName = Input.SName; profile.Patronymic = Input.Patronymic; _dbContext.Update(profile); await _dbContext.SaveChangesAsync(); StatusMessage = "Ваша персональная информация успешно изменена."; return(RedirectToPage()); }
/// <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(); } }