public IActionResult Create() { var groupInfo = _userHelperService.GetSelectedGroup(User); var model = new EditMessagingViewModel() { IdGroup = groupInfo.Key, }; ViewBag.IdGroup = groupInfo.Key; return(View(nameof(Edit), model)); }
public async Task <IActionResult> SendMessages(EditMessagingViewModel data) { if (!ModelState.IsValid) { return(Edit(data)); } var groupInfo = _userHelperService.GetSelectedGroup(User); var message = await DbHelper.AddMessage(_context, groupInfo.Key, data.Message, data.GetVkKeyboard(), data.IsImageFirst, data.Files.Select(x => x.Id)); long[] userIds = null; if (data.IsSelfSend) { userIds = new long[] { await _userHelperService.GetUserIdVk(User) } } ; //return Json(new { idMessage = message.Id, ids = new long[] { await _userHelperService.GetUserIdVk(User) } }); else { userIds = await _context.Subscribers .Where(x => x.IdGroup == groupInfo.Key) .Where(x => x.IsChatAllowed.HasValue && x.IsChatAllowed.Value) .Select(x => x.IdVkUser) .ToArrayAsync(); } await _context.Scheduler_Messaging.AddAsync(new Scheduler_Messaging() { DtAdd = DateTime.UtcNow, IdMessage = message.Id, Name = data.Name, RecipientsCount = userIds.LongLength, Status = Models.Database.Common.MessagingStatus.Added, DtStart = DateTime.SpecifyKind(DateTime.ParseExact(data.DtStart, "dd.MM.yyyy HH:mm", System.Globalization.CultureInfo.InvariantCulture), DateTimeKind.Local).ToUniversalTime(), VkUserIds = string.Join(',', userIds) }); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
public IActionResult Edit(EditMessagingViewModel data) { ViewBag.IdGroup = data.IdGroup; return(View(data)); }
public async Task <IActionResult> Edit(Guid?idMessaging) { if (!idMessaging.HasValue) { return(RedirectToAction(nameof(Index))); } var messaging = await _context.Scheduler_Messaging .FirstOrDefaultAsync(x => x.Id == idMessaging); if (messaging == null) { return(RedirectToAction(nameof(Index))); } var groupInfo = _userHelperService.GetSelectedGroup(User); var model = new EditMessagingViewModel() { IdMessage = messaging.IdMessage, DtStart = messaging.DtStart.ToString("dd.MM.yyyy HH:mm"), Name = messaging.Name, IdGroup = groupInfo.Key }; var message = await _context.Messages .Include(x => x.Files) .FirstOrDefaultAsync(x => x.Id == messaging.IdMessage); uint idx = 0; model.Message = message.Text; model.IsImageFirst = message.IsImageFirst; model.Files = message.Files.Select(x => new FileModel() { Id = x.IdFile, Name = _context.Files.Where(y => y.Id == x.IdFile).Select(y => y.Name).FirstOrDefault(), Index = idx++ }).ToList(); var keyboard = string.IsNullOrWhiteSpace(message.Keyboard) ? null : Newtonsoft.Json.JsonConvert.DeserializeObject <VkNet.Model.Keyboard.MessageKeyboard>(message.Keyboard); if (keyboard != null) { model.Keyboard = new List <List <MessageButton> >(); byte currentRowIdx = 0; foreach (var currentRow in keyboard.Buttons) { byte colIdx = 0; model.Keyboard.Add(currentRow.Select(x => new MessageButton() { ButtonColor = x.Color.ToString(), Column = colIdx++, CanDelete = colIdx == currentRow.Count(), Row = currentRowIdx, Text = x.Action.Label }).ToList()); currentRowIdx++; } } ViewBag.IdGroup = groupInfo.Key; return(View(model)); }