コード例 #1
0
        public async Task <List <ViewModelOrder> > Get()
        {
            _logger.LogInformation("Get items");
            var orderList = await _orderRepo.GetAllOrders();

            var modelOrders = new List <ViewModelOrder>();

            foreach (var order in orderList)
            {
                var client = await _clientRepo.GetClientById(order.ClientId);

                var kadett = await _kadettRepo.GetKadettById(order.KadettId);

                var modelTickets = new List <ViewModelTicket>();
                var orderTickets = await _ticketOrderRepo.GetTicketOrderByOrderId(order.Id);

                foreach (var orderTicket in orderTickets)
                {
                    var tickets = await _ticketRepo.GetTicketById(orderTicket.TicketId);

                    var vmTicket = new ViewModelTicket()
                    {
                        Type     = tickets.Type,
                        Quantity = orderTicket.Quantity,
                        Day      = orderTicket.Day
                    };
                    modelTickets.Add(vmTicket);
                }

                var vm = new ViewModelOrder
                {
                    Email           = client.Email,
                    Phone           = client.Phone,
                    Bemerkung       = order.Bemerkung,
                    ClientFirstName = client.FirstName,
                    ClientLastName  = client.LastName,
                    Tickets         = modelTickets,
                    KadettFirstName = kadett.FirstName,
                    KadettLastName  = kadett.LastName,
                    KadettInKader   = kadett.KadettInKader
                };
                modelOrders.Add(vm);
            }


            return(modelOrders);
        }
コード例 #2
0
        public JsonResult GetListItensSeachTicket(int page, int sizePage)
        {
            /*
             * var listItens = pagination.ListItens();
             *
             * var result = (((page == 1 ? page = 0 : page-1) * sizePage));
             * var list = listItens.Skip(result ==0?result:result-1).Take(sizePage);
             *
             * return Json(list,JsonRequestBehavior.AllowGet);
             */


            var ticket    = new ViewModelTicket();
            var listItens = ListItensSeachTicket(ticket, null, null, null, null, null);

            var result = (((page == 1 ? page = 0 : page - 1) * sizePage));
            var list   = UnitOfTicket.GetAll().Skip(result == 0 ? result : result - 1).Take(sizePage);

            return(Json(list, JsonRequestBehavior.AllowGet));
        }
コード例 #3
0
        public ActionResult SearchTicket(ViewModelTicket ticket,
                                         DateTime?opendatefrom, DateTime?opendateto, DateTime?closedatefrom,
                                         DateTime?closedateto, string description)
        {
            ViewBag.QuantMaxLinhasPorPagina = 10;
            ViewBag.PaginaAtual             = 1;

            var quant           = ListItensSeachTicket(ticket, opendatefrom, opendateto, closedatefrom, closedateto, description).Count();
            var difQuantPaginas = (quant % ViewBag.QuantMaxLinhasPorPagina) > 0 ? 1 : 0;

            ViewBag.QuantPages = (quant / ViewBag.QuantMaxLinhasPorPagina) + difQuantPaginas;



            var list = ListItensSeachTicket(ticket, opendatefrom, opendateto, closedatefrom, closedateto, description);



            return(PartialView(@"/Views/Shared/Ticket/_PartialViewSearchTicketList.cshtml", list));
        }
コード例 #4
0
        public List <ViewModelTicket> ListItensSeachTicket(ViewModelTicket ticket,
                                                           DateTime?opendatefrom, DateTime?opendateto, DateTime?closedatefrom,
                                                           DateTime?closedateto, string description)
        {
            var query = UnitOfTicket.Where(x => x.ProductId > 0);

            if (opendatefrom != null && opendateto != null)
            {
                query = query.Where(c => c.OpenDateAndTime >= opendatefrom &&
                                    c.OpenDateAndTime.Date.AddHours(23).AddMinutes(59).AddSeconds(59) <= opendateto);
            }
            if (closedatefrom != null && closedateto != null)
            {
                query = query.Where(c => c.ClosedDateTime >= closedatefrom &&
                                    c.ClosedDateTime <= closedateto.Value.AddHours(23).AddMinutes(59).AddSeconds(59));
            }
            if (!string.IsNullOrEmpty(ticket.Title))
            {
                query = query.Where(c => c.Title.Contains(ticket.Title));
            }
            if (ticket.TicketId > 0)
            {
                query = query.Where(c => c.TicketId == ticket.TicketId);
            }
            if (ticket.StatusId > 0)
            {
                query = query.Where(c => c.StatusId == ticket.StatusId);
            }
            if (ticket.IdExternal > 0)
            {
                query = query.Where(c => c.IdExternal == ticket.IdExternal);
            }
            if (ticket.TicketTypeId > 0)
            {
                query = query.Where(c => c.TicketTypeId == ticket.TicketTypeId);
            }
            if (ticket.CompanyId > 0)
            {
                query = query.Where(c => c.CompanyId == ticket.CompanyId);
            }
            if (ticket.PriorityId > 0)
            {
                query = query.Where(c => c.PriorityId == ticket.PriorityId);
            }
            if (!string.IsNullOrEmpty(description))
            {
                query = query.Where(c => c.Title.Contains(ticket.Title));
            }
            if (!string.IsNullOrEmpty(ticket.UserId))
            {
                query = query.Where(c => c.UserId == ticket.UserId);
            }
            if (!string.IsNullOrEmpty(ticket.AnalystDesignated))
            {
                query = query.Where(c => c.AnalystDesignated == ticket.AnalystDesignated);
            }
            if (User.IsInRole("User"))
            {
                query = query.Where(c => c.UserId == User.Identity.GetUserName());
            }
            if (User.IsInRole("SuperUser"))
            {
                var user      = (System.Security.Claims.ClaimsIdentity)User.Identity;
                var companyId = Convert.ToInt32(user.FindFirstValue("CompanyId"));
                query = query.Where(x => x.CompanyId == companyId);
            }


            var list = query.ToList();

            return(list);
        }
コード例 #5
0
        public JsonResult SaveTicketAjaxUpdate(ViewModelTicket ticket, string description, bool SendToUser, HttpPostedFileBase file)
        {
            var diff       = TimeSpan.Zero;
            var diffTime   = 0.0;
            var lastStatus = UnitOfTicketAction.Where(x => x.TicketId == ticket.TicketId)
                             .OrderByDescending(x => x.IterationId)
                             .Select(x => x.StatusId).FirstOrDefault();


            if (ticket.StatusId == 6 || ticket.StatusId == 7 &&
                lastStatus != 6 && lastStatus != 7)
            {
                ticket.ClosedDateTime = DateTime.Now.ToLocalTime();
            }

            else if (ticket.StatusId == 3 || ticket.StatusId == 4 || ticket.StatusId == 5 &&
                     lastStatus != 3 && lastStatus != 4 && lastStatus != 5)
            {
                var sla       = new CalculateSla();
                var TotalTime = sla.SlaRestTime(ticket.TicketId);

                var time = CalculateSla.SubtractWithinWorkingHours(DateTime.Now.ToLocalTime(), (int)TotalTime);

                ticket.SlaExpiration = CalculateSla.AddWithinWorkingHours(DateTime.Now.ToLocalTime(), TimeSpan.FromHours(time), 9, 8);


                /*
                 * var dateTicket = UnitOfTicket.Where(x => x.TicketId == ticket.TicketId)
                 * .Select(x => x.SlaExpiration).FirstOrDefault();
                 *  diffTime = dateTicket.Subtract(DateTime.Now.ToLocalTime()).TotalHours;
                 * CalculateSla.SubtractWithinWorkingHours(DateTime.Now.ToLocalTime(), (int)diffTime);
                 */
            }

            else if (ticket.StatusId == 2 && lastStatus == 3 ||
                     lastStatus == 4 || lastStatus == 5)
            {
                var slaRest = UnitOfTicketAction.Where(x => x.TicketId == ticket.TicketId).OrderByDescending(x => x.IterationId).Select(x => x.SlaRest).FirstOrDefault();
                //diff = slaRest;
                diffTime = slaRest.TotalHours;
                ticket.ClosedDateTime = DateTime.Now.ToLocalTime().Add(slaRest);
            }

            var path = string.Empty;

            if (file != null)
            {
                path = UploadAndDownload.Upload(file, ticket.TicketId);
            }



            //If Ticket exist then Update Ticket
            this.UnitOfTicket.Update(ticket, ticket.TicketId);

            var actions = new Models.Ticket.Action
            {
                TicketId          = ticket.TicketId,
                ActionDescription = description,
                StatusId          = ticket.StatusId,
                Date       = DateTime.Now.ToLocalTime(),
                PriorityId = ticket.PriorityId,
                AlteredBy  = User.Identity.Name,
                SendToUser = SendToUser,
                //SlaRest = TimeSpan.FromHours(diffTime),
                IterationId = UnitOfTicketAction.Where(x => x.TicketId == ticket.TicketId).Max(x => x.IterationId) + 1
            };


            if (!string.IsNullOrEmpty(description))
            {
                UnitOfTicketAction.Save(actions);
            }


            return(Json(new { actions, ticket }, JsonRequestBehavior.AllowGet));
        }