public async Task <IActionResult> EditTicket(int ticketId) { var allUsers = _userServices.GetAll(); var formattedUsers = await _userServices.FormatUsersAsync(allUsers); var userIndex = new UserIndexModel { Users = formattedUsers }; var ticket = _ticketServices.GetById(ticketId); var ticketModel = new TicketModel { Id = ticket.Id, ProjectId = ticket.Project.Id, Title = ticket.Title, Description = ticket.Description, DeveloperId = ticket.AssignedDeveloper.Id, TicketPriority = ticket.TicketPriority, TicketStatus = ticket.TicketStatus, TicketType = ticket.TicketType }; var model = new UserTicketModel { UserIndexModel = userIndex, TicketModel = ticketModel }; return(View(model)); }
public async Task <IActionResult> EditTicket(UserTicketModel model) { if (!ModelState.IsValid) { return(View(model)); } var ticketModel = model.TicketModel; var currentUser = await _userManager.GetUserAsync(User); var ticket = _ticketServices.GetById(ticketModel.Id); ticket.Title = ticketModel.Title; ticket.Description = ticketModel.Description; ticket.AssignedDeveloper = await _userManager.FindByIdAsync(ticketModel.DeveloperId); ticket.LastUpdateDate = DateTime.Now; ticket.LastUpdatedBy = currentUser; ticket.TicketPriority = ticketModel.TicketPriority; ticket.TicketStatus = ticketModel.TicketStatus; ticket.TicketType = ticketModel.TicketType; _context.SaveChanges(); return(RedirectToAction("ProjectDetails", "Projects", new { projectId = ticketModel.ProjectId })); }
public async Task <IActionResult> NewTicket(int projectId) { //Get all Users and format into Index Model var project = _projectServices.GetById(projectId); var projUsers = _projectServices.GetAllUsers(project); var projDevelopers = await _userServices.GetAllByRole("Developer", projUsers); var formattedUsers = await _userServices.FormatUsersAsync(projDevelopers); var userIndex = new UserIndexModel { Users = formattedUsers }; var ticketModel = new TicketModel { ProjectId = projectId }; var model = new UserTicketModel { UserIndexModel = userIndex, TicketModel = ticketModel }; return(View(model)); }
public async Task <IActionResult> NewTicket(UserTicketModel model) { if (!ModelState.IsValid) { return(View(model)); } var ticketModel = model.TicketModel; var currentUser = await _userManager.GetUserAsync(User); var ticket = new Ticket { Title = ticketModel.Title, Description = ticketModel.Description, Project = _projectServices.GetById(ticketModel.ProjectId), AssignedDeveloper = await _userManager.FindByIdAsync(ticketModel.DeveloperId), CreateDate = DateTime.Now, LastUpdateDate = DateTime.Now, LastUpdatedBy = currentUser, Creator = currentUser, TicketPriority = ticketModel.TicketPriority, TicketStatus = ticketModel.TicketStatus, TicketType = ticketModel.TicketType }; _ticketServices.Add(ticket); return(RedirectToAction("ProjectDetails", "Projects", new { projectId = ticketModel.ProjectId })); }
public async Task <IActionResult> Authenticate(QuestionAuthModel authModel) { UserTicketModel ticket = await _authenticationService.AuthenticateAsync(authModel); if (ticket.Id == 0) { return(BadRequest()); } return(Ok(ticket)); }
public void Delete(int id, int sessionId) { // Cancel Ticket UserTicketModel userTicketTemplate = new UserTicketModel(); userTicketList.Add(userTicketTemplate); // Add to list for deletion foreach (var itemsBooked in userTicketList) { if (itemsBooked.Id == id && itemsBooked.SessionId == sessionId) { userTicketList.Remove(itemsBooked); } } }
// PUT: api/Booking/5 public UserTicketModel Put(int sessionid, UserTicketModel userTicketOrder) { // Change User Ticket Information // To Different Slot List <TicketModel> ticketList = new List <TicketModel>(); // Get the lists // Find the ticket session, if found then eligible to change session time. foreach (var ticket in ticketList) { if (ticket.TicketInfo.SessionId == sessionid && userTicketOrder.Id == ticket.Id) { userTicketOrder.SessionId = sessionid; } } return(userTicketOrder); }
/// <summary> /// /// </summary> /// <param name="roles">查询的用户角色</param> /// <param name="userIds">要排除的用户Id</param> /// <returns></returns> public List <UserTicketModel> SearchUserWithRole(List <RolesEnum> roles, string hideUserIds) { string strUserSql = ""; StringBuilder strUserSelect = new StringBuilder(); strUserSelect.Append("SELECT "); strUserSelect.Append("U.UserID, "); strUserSelect.Append("U.FirstName, "); strUserSelect.Append("U.LastName, "); strUserSelect.Append("R.RoleID, "); strUserSelect.Append("R.RoleName "); strUserSelect.Append("FROM dbo.Users AS U "); strUserSelect.Append("LEFT JOIN dbo.Roles AS R ON U.RoleID = R.RoleID "); StringBuilder strWhere = new StringBuilder(); strWhere.Append("WHERE "); strWhere.Append("U.Status='ACTIVE' "); if (roles.Count > 0) { strWhere.AppendFormat("AND U.RoleID IN({0}) ", string.Join(",", roles.Select(x => (int)x).ToList())); } if (hideUserIds.Length > 0) { strWhere.Append("AND U.UserID NOT IN( " + hideUserIds + ") "); } StringBuilder strUserOrder = new StringBuilder(); strUserOrder.Append("ORDER BY U.RoleID ,U.FirstName; "); strUserSql = strUserSelect.ToString() + strWhere.ToString() + strUserOrder.ToString(); DateTime now = DateTime.Now; DateTime lastMonthStart = now.AddDays(1 - now.Day).AddMonths(-1).Date; DateTime currentMonthStart = now.AddDays(1 - now.Day).Date; StringBuilder strTicketCountSql = new StringBuilder(); strTicketCountSql.Append("SELECT TH.ModifiedBy,COUNT(DISTINCT TH.TicketID) AS TicketCount "); strTicketCountSql.Append("FROM dbo.TicketHistorys AS TH "); strTicketCountSql.Append("WHERE TH.ModifiedBy IN ("); strTicketCountSql.Append("SELECT U.UserID FROM dbo.Users AS U "); strTicketCountSql.Append(strWhere.ToString()); strTicketCountSql.Append(") "); strTicketCountSql.Append("{0} "); strTicketCountSql.Append("GROUP BY TH.ModifiedBy;"); StringBuilder strPreviousSql = new StringBuilder(); StringBuilder strPreviousWhereSql = new StringBuilder(); strPreviousWhereSql.Append("AND TH.ModifiedOn >= '" + lastMonthStart + "' "); strPreviousWhereSql.Append("AND TH.ModifiedOn < '" + currentMonthStart + "' "); strPreviousSql.AppendFormat(strTicketCountSql.ToString(), strPreviousWhereSql.ToString()); StringBuilder strCurrentSql = new StringBuilder(); StringBuilder strCurrentWhereSql = new StringBuilder(); strCurrentWhereSql.Append("AND TH.ModifiedOn >= '" + currentMonthStart + "' "); strCurrentSql.AppendFormat(strTicketCountSql.ToString(), strCurrentWhereSql.ToString()); StringBuilder strTicketSql = new StringBuilder(); strTicketSql.Append("SELECT T.ResponsibleUser,T.TicketID,T.Title,T.ProjectID,P.Title AS ProjectName,T.Priority "); strTicketSql.Append("FROM dbo.Tickets AS T LEFT JOIN dbo.Projects AS P ON T.ProjectID=P.ProjectID "); strTicketSql.Append("WHERE T.ResponsibleUser IN ( "); strTicketSql.Append("SELECT U.UserID FROM dbo.Users AS U "); strTicketSql.Append(strWhere.ToString()); strTicketSql.Append(") "); strTicketSql.Append("AND T.ProjectID IN (SELECT ProjectID FROM ProjectUsers PU WHERE PU.UserID IN ("); strTicketSql.Append("SELECT U.UserID FROM dbo.Users AS U "); strTicketSql.Append(strWhere.ToString()); strTicketSql.Append(") "); strTicketSql.Append(") "); List <TicketsState> status = new List <TicketsState>(); status.AddRange(TicketsStateHelper.SunnetSHAllowShowStatus); string strStatus = string.Join(",", status.Select(x => (int)x).ToList()); strTicketSql.Append("AND T.Status IN (1, 4, 9, 3, 5, 7, 10, 13, 17, 6, 12, 15, 11, 14, 8, 18, 16, 20, 31, 32) "); strTicketSql.Append("ORDER BY T.ModifiedOn DESC;"); string strSql = strTicketSql.ToString() + strPreviousSql.ToString() + strCurrentSql.ToString() + strUserSql; Database db = DatabaseFactory.CreateDatabase(); List <UserTicketModel> userTickets = new List <UserTicketModel>(); using (DbCommand dbCommand = db.GetSqlStringCommand(strSql)) { try { using (IDataReader sdr = db.ExecuteReader(dbCommand)) { List <TicketListModel> tickets = new List <TicketListModel>(); while (sdr.Read()) { TicketListModel ticket = new TicketListModel { ResponsibleUserID = int.Parse(sdr["ResponsibleUser"].ToString()), TicketID = int.Parse(sdr["TicketID"].ToString()), Title = sdr["Title"].ToString(), ProjectID = int.Parse(sdr["ProjectID"].ToString()), ProjectName = sdr["ProjectName"].ToString(), Priority = (PriorityState)sdr["Priority"] }; tickets.Add(ticket); } bool isNext = sdr.NextResult(); List <TicketHistoryModel> previousList = new List <TicketHistoryModel>(); while (sdr.Read() && isNext) { TicketHistoryModel model = new TicketHistoryModel { UserID = int.Parse(sdr[0].ToString()), TicketCount = int.Parse(sdr[1].ToString()) }; previousList.Add(model); } isNext = sdr.NextResult(); List <TicketHistoryModel> currentList = new List <TicketHistoryModel>(); while (sdr.Read() && isNext) { TicketHistoryModel model = new TicketHistoryModel { UserID = int.Parse(sdr[0].ToString()), TicketCount = int.Parse(sdr[1].ToString()) }; currentList.Add(model); } isNext = sdr.NextResult(); while (sdr.Read() && isNext) { UserTicketModel model = new UserTicketModel { UserID = int.Parse(sdr[0].ToString()), FirstName = sdr[1].ToString(), LastName = sdr[2].ToString(), RoleID = int.Parse(sdr[3].ToString()), RoleName = sdr[4].ToString() }; model.Tickets = tickets.Where(t => t.ResponsibleUserID == model.UserID).Take(10).ToList(); model.TicketCount = tickets.Count(t => t.ResponsibleUserID == model.UserID); if (previousList.Count(p => p.UserID == model.UserID) > 0) { model.Previous = previousList.First(p => p.UserID == model.UserID).TicketCount; } else { model.Previous = 0; } if (currentList.Count(p => p.UserID == model.UserID) > 0) { model.Current = currentList.First(p => p.UserID == model.UserID).TicketCount; } else { model.Current = 0; } userTickets.Add(model); } } return(userTickets); } catch (Exception ex) { WebLogAgent.Write(string.Format("[SQLText:{0},{1}Messages:\r\n{2}]", strSql, base.FormatParameters(dbCommand.Parameters), ex.Message)); } } return(userTickets); }
// POST: api/Booking public UserTicketModel Post(UserTicketModel userTicketOrder) { // Book Ticket userTicketList.Add(userTicketOrder); return(userTicketOrder); }