public async Task <IActionResult> SaveBirthdayWall(BirthdayWallSchedulerViewModel model) { if (!ModelState.IsValid) { return(View("BirthdayWall", model)); } var groupInfo = _userHelperService.GetSelectedGroup(User); var idUser = await _userHelperService.GetUserIdVk(User); Messages message = null; if (model.IdMessage.HasValue) { message = await _context.Messages .Include(x => x.Files) .FirstOrDefaultAsync(x => x.Id == model.IdMessage.Value); message.Text = model.Message; var newFilesInMessage = model.Files.Select(x => x.Id) .Except(message.Files.Select(x => x.IdFile)) .Select(x => new FilesInMessage() { IdFile = x, IdMessage = message.Id }); await _context.FilesInMessage.AddRangeAsync(newFilesInMessage); } else { message = await DbHelper.AddMessage(_context, groupInfo.Key, model.Message, null, false, model.Files.Select(x => x.Id)); } BirthdayWallScenarios scenario = _context.BirthdayWallScenarios.Include(x => x.Message).FirstOrDefault(x => x.IdGroup == groupInfo.Key); if (scenario == null) { scenario = new BirthdayWallScenarios() { IdGroup = groupInfo.Key, IsEnabled = true }; await _context.BirthdayWallScenarios.AddAsync(scenario); } if (!model.IdMessage.HasValue) { scenario.IdMessage = message.Id; } scenario.SendAt = model.SendAt; scenario.IdVkUser = idUser; await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> BirthdayWall() { var groupInfo = _userHelperService.GetSelectedGroup(User); BirthdayWallScenarios scenario = await _context.BirthdayWallScenarios.FirstOrDefaultAsync(x => x.IdGroup == groupInfo.Key); BirthdayWallSchedulerViewModel model = null; if (scenario != null) { Messages message = await _context.Messages .Include(x => x.Files) .FirstOrDefaultAsync(x => x.Id == scenario.IdMessage); uint idx = 0; model = new BirthdayWallSchedulerViewModel() { IdMessage = scenario.IdMessage, SendAt = scenario.SendAt, Message = message.Text, Files = message.Files.Select(y => new FileModel() { Id = y.IdFile, Name = _context.Files.FirstOrDefault(z => y.IdFile == z.Id)?.Name, Index = idx++ }).ToList() }; } else { model = new BirthdayWallSchedulerViewModel(); } return(View(model)); }
public IActionResult BirthdayWall(BirthdayWallSchedulerViewModel model) { return(View(model)); }