public async Task <IActionResult> AddTopic() { int comp_id = Int32.Parse(HttpContext.User.FindFirst("CompanyID").Value); int user_id = Int32.Parse(HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value); var user = await _context.Users.Where(u => u.ID == user_id).FirstOrDefaultAsync(); int?w_id = user.WorkerID; var workers = await _context.Workers.Where(w => w.CompanyID == comp_id).ToListAsync(); List <WorkerChatMember> workerChatMembers = new List <WorkerChatMember>(); foreach (Worker worker in workers) { if (worker.ID != w_id) { WorkerChatMember member = new WorkerChatMember { FullName = worker.FirstName + " " + worker.SecondName, ID = worker.ID, IsAdded = false }; workerChatMembers.Add(member); } } TopicPlusWorkersList topicPlusWorkersList = new TopicPlusWorkersList { WorkerChatMembers = workerChatMembers }; return(View(topicPlusWorkersList)); }
public async Task <IActionResult> AddTopic(TopicPlusWorkersList list) { if (ModelState.IsValid) { int comp_id = Int32.Parse(HttpContext.User.FindFirst("CompanyID").Value); int user_id = Int32.Parse(HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value); User user = await _context.Users.Where(u => u.ID == user_id).FirstOrDefaultAsync(); int?w_ID = user.WorkerID; Topic topic = new Topic { UserID = user_id, CompanyID = comp_id, Title = list.Title, CreationDate = DateTime.Now }; await _context.Topics.AddAsync(topic); await _context.SaveChangesAsync(); List <ChatMember> chatMembers = new List <ChatMember>(); ChatMember chAdmin = new ChatMember { WorkerID = w_ID, TopicID = topic.ID }; await _context.ChatMembers.AddAsync(chAdmin); await _context.SaveChangesAsync(); foreach (WorkerChatMember member in list.WorkerChatMembers) { if (member.IsAdded == true) { ChatMember chmember = new ChatMember { WorkerID = member.ID, TopicID = topic.ID }; chatMembers.Add(chmember); } } await _context.ChatMembers.AddRangeAsync(chatMembers); await _context.SaveChangesAsync(); return(RedirectToAction("Topics")); } ModelState.AddModelError("", "Некорректные данные"); return(View(list)); }