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); }
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)); }
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)); }
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); }
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)); }