public ContentResult UploadFiles(int ticketId) { var r = new List <UploadFilesResult>(); foreach (string file in Request.Files) { HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase; if (hpf.ContentLength == 0) { continue; } //"~/App_Data/Uploads/Tickets/" //string savedFileName = Path.Combine(Server.MapPath("~/App_Data"), Path.GetFileName(hpf.FileName)); //string path = "~/App_Data/Uploads/Tickets/"+ticketId.ToString(); var path = "C:/Users/lorran.palmeira/Source/Repos/XRTTicket/XRTTicket/App_Data/Uploads/Tickets/" + ticketId.ToString(); //var path = "C:/Users/lorran.palmeira/Downloads/Arquivos/" + ticketId.ToString() +"/"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string savedFileName = Path.Combine(Server.MapPath("~/App_Data/Uploads/Tickets/" + ticketId.ToString()), Path.GetFileName(hpf.FileName)); hpf.SaveAs(savedFileName); var actions = new Models.Ticket.Action { TicketId = ticketId, ActionDescription = "Sucess UpLoaded file by " + User.Identity.Name + " " + DateTime.Now.ToLocalTime(), Date = DateTime.Now.ToLocalTime(), StatusId = UnitOfTicket.Where(x => x.TicketId == ticketId).Select(x => x.StatusId).FirstOrDefault(), PriorityId = UnitOfTicket.Where(x => x.TicketId == ticketId).Select(x => x.PriorityId).FirstOrDefault(), AlteredBy = User.Identity.Name, SendToUser = true, Files = path + "/" + hpf.FileName, IterationId = UnitOfTicketAction.Where(x => x.TicketId == ticketId).Max(x => x.IterationId) + 1 }; UnitOfTicketAction.Save(actions); /* * r.Add(new UploadFilesResult() * { * Name = hpf.FileName, * Length = hpf.ContentLength, * Type = hpf.ContentType * }); */ } return(Content("{\"name\":\"" + r[0].Name + "\",\"type\":\"" + r[0].Type + "\",\"size\":\"" + string.Format("{0} bytes", r[0].Length) + "\"}", "application/json")); //return Json("Sucess",JsonRequestBehavior.AllowGet); }
public ActionResult SaveTicket(Models.Ticket.ViewModelTicket ticket, string description, HttpPostedFileBase file) { if (ModelState.IsValid) { ticket.TicketId = Convert.ToInt32(UnitOfTicket.Next()); ticket.OpenDateAndTime = DateTime.Now.ToLocalTime(); ticket.UserId = User.Identity.GetUserName(); var user = (System.Security.Claims.ClaimsIdentity)User.Identity; ticket.CompanyId = Convert.ToInt32(user.FindFirstValue("CompanyId")); ticket.StatusId = 1; var ret = Repository._priorityTime.Where(x => x.PriorityId == ticket.PriorityId) .Select(x => x.SlaTime).FirstOrDefault(); ticket.SlaExpiration = CalculateSla.AddWithinWorkingHours(ticket.OpenDateAndTime, TimeSpan.FromHours(ret), 9, 8); this.UnitOfTicket.Save(ticket); // Chech if exists files var path = string.Empty; if (file != null) { path = UploadAndDownload.Upload(file, ticket.TicketId); } var actions = new Models.Ticket.Action { TicketId = ticket.TicketId, ActionDescription = description, StatusId = ticket.StatusId, Date = DateTime.Now.ToLocalTime(), AlteredBy = User.Identity.Name, SendToUser = true, SlaRest = TimeSpan.FromHours( Repository._priorityTime .Where(x => x.PriorityId == ticket.PriorityId) .Select(x => x.SlaTime).FirstOrDefault()), Files = path, IterationId = 1 }; this.UnitOfTicketAction.Save(actions); //return RedirectToAction(nameof(NewTicket)); if (User.IsInRole("User") || User.IsInRole("SuperUser")) { return(RedirectToAction(nameof(MyTickets))); } else { return(RedirectToAction(nameof(TicketList))); } } else { return(View(nameof(NewTicket), ticket)); } }
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)); }