Example #1
0
        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));
        }
Example #2
0
        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 }));
        }
Example #3
0
        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));
        }
Example #4
0
        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 }));
        }
Example #5
0
        public async Task <IActionResult> Authenticate(QuestionAuthModel authModel)
        {
            UserTicketModel ticket =
                await _authenticationService.AuthenticateAsync(authModel);

            if (ticket.Id == 0)
            {
                return(BadRequest());
            }
            return(Ok(ticket));
        }
Example #6
0
        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);
                }
            }
        }
Example #7
0
        // 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);
        }
Example #9
0
 // POST: api/Booking
 public UserTicketModel Post(UserTicketModel userTicketOrder)
 {
     // Book Ticket
     userTicketList.Add(userTicketOrder);
     return(userTicketOrder);
 }