public async Task <IActionResult> Create(MergeModel model) { var assignedBy = UserMgr.GetUserId(HttpContext.User); Bug bug = model.Bugs; bug.BugCreationTimeStamp = DateTime.Now; bug.AssignedById = Convert.ToInt32(assignedBy); _context.Add(bug); await _context.SaveChangesAsync(); var user = UserMgr.Users.FirstOrDefault(m => m.Id == bug.AssignedToId); var userAssignedBy = UserMgr.Users.FirstOrDefault(m => m.Id == bug.AssignedById); var role = await UserMgr.GetRolesAsync(user); var roleAssignedBy = await UserMgr.GetRolesAsync(userAssignedBy); //check if the user assigned to the bug is already in the bug history model var userAssigned = _context.BugAssignmentHistories.FirstOrDefault(m => m.AssignedToId == bug.AssignedToId && m.BugId == bug.BugId); var notification = new Notification { NotificationType = NotificationTypeEnum.BugAssigned, NotificationMessage = $"Hey {user.FirstName}, you've" + " been assigned a new Bug by " + $"({roleAssignedBy[0]}) {userAssignedBy.UserName}!", ReceipientId = bug.AssignedToId, SenderId = bug.AssignedById, BugId = bug.BugId }; _context.Add(notification); var bugHistory = new BugAssignmentHistory { BugId = bug.BugId, BugStatus = bug.BugStatus, AssignedToId = bug.AssignedToId, RoleName = role[0] }; if (userAssigned == null) { _context.Add(bugHistory); } else { _context.Update(bugHistory); } await _context.SaveChangesAsync(); return(RedirectToAction("Index", "Bug")); }