private bool ChangeTeller(Ticket ticket, CreateEditTicketViewModel data, PrevValue prevInput) { ////reflection //ticket.GetType().GetProperties(); if (prevInput == PrevValue.Title) { return(ticket.Title != data.Title); } else if (prevInput == PrevValue.Description) { return(ticket.Description != data.Description); } else if (prevInput == PrevValue.ProjectId) { return(ticket.ProjectId != Convert.ToInt32(data.GetProjectBelong)); } else if (prevInput == PrevValue.TicketPriorityId) { return(ticket.TicketPriorityId != Convert.ToInt32(data.GetTicketPriority)); } else if (prevInput == PrevValue.TicketTypeId) { return(ticket.TicketTypeId != Convert.ToInt32(data.GetTicketType)); } else if (prevInput == PrevValue.TicketStatusId) { return(ticket.TicketStatusId != Convert.ToInt32(data.GetTicketStatus)); } return(false); }
private CreateEditTicketViewModel MStateNotValid(int?tkId) { var thisUserId = User.Identity.GetUserId(); var model = new CreateEditTicketViewModel(); model.TicketType = new SelectList(DbContext.TicketTypes, "Id", "Name"); model.TicketPriority = new SelectList(DbContext.TicketPriorities, "Id", "Name"); if (!IsAdmin() || !IsProjectManager()) { var holdPjts = AppHepler.GetProjects4CurrentUserById(thisUserId); model.ProjectBelong = new SelectList(holdPjts, "Id", "Name"); } else { var allPjts = AppHepler.GetAllProjects(); model.ProjectBelong = new SelectList(allPjts, "Id", "Name"); model.TicketStatus = new SelectList(DbContext.TicketStatuses, "Id", "Name"); } if (tkId.HasValue) { var thisTicket = AppHepler.GetTicketById(tkId); if (IsAdmin() || IsProjectManager()) { model.GetTicketStatus = Convert.ToString(thisTicket.TicketStatusId); } model.GetProjectBelong = Convert.ToString(thisTicket.ProjectId); model.GetTicketType = Convert.ToString(thisTicket.TicketTypeId); model.GetTicketPriority = Convert.ToString(thisTicket.TicketPriorityId); } return(model); }
public ActionResult Edit(int?id) { if (!id.HasValue) { return(RedirectToAction(nameof(TicketController.Index))); } var ticket = AppHepler.GetTicketById(id); if (ticket == null) { return(RedirectToAction(nameof(TicketController.Index))); } var appUserId = User.Identity.GetUserId(); // Check OwnerShip var result = OwnershipCheckEdit(appUserId, ticket); if (result == nameof(TicketController.IndexSubAll)) { return(RedirectToAction(nameof(TicketController.IndexSubAll))); } else if (result == nameof(TicketController.IndexDevAll)) { return(RedirectToAction(nameof(TicketController.IndexDevAll))); } var ownedPjts = AppHepler.GetProjects4CurrentUserById(appUserId); var model = new CreateEditTicketViewModel(); model.Title = ticket.Title; model.Description = ticket.Description; model.TicketType = new SelectList(DbContext.TicketTypes, "Id", "Name"); model.TicketPriority = new SelectList(DbContext.TicketPriorities, "Id", "Name"); model.GetTicketPriority = Convert.ToString(ticket.TicketPriorityId); model.GetTicketType = Convert.ToString(ticket.TicketTypeId); if (IsAdmin() || IsProjectManager()) { var allPjts = AppHepler.GetAllProjects(); model.ProjectBelong = new SelectList(allPjts, "Id", "Name"); model.TicketStatus = new SelectList(DbContext.TicketStatuses, "Id", "Name"); model.GetTicketStatus = Convert.ToString(ticket.TicketStatusId); } else { model.ProjectBelong = new SelectList(ownedPjts, "Id", "Name"); } model.GetProjectBelong = Convert.ToString(ticket.ProjectId); return(View(model)); }
public ActionResult Edit(int?id) { Ticket ticket = db.Tickets.Find(id); var userId = User.Identity.GetUserId(); var project = ticket.Project; string projectName; //var projects = new List<Project>(); var developers = "Developer".UsersInRole(); var projectDevelopers = new List <ApplicationUser>(); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (ticket == null) { return(HttpNotFound()); } //if (User.IsInRole("Administrator")) // projects = db.Projects.Where(p => p.IsResolved != true).ToList(); //else // projects = userId.ListUserProjects().Where(p => p.IsResolved != true).ToList(); //select project developers if (project != null) { foreach (var dev in developers.ToList()) { if (project.Users.Any(u => u.Id == dev.Id)) { projectDevelopers.Add(dev); } } projectName = project.Name; } else { projectName = ""; } var model = new CreateEditTicketViewModel() { Ticket = ticket, ProjectName = projectName, //Projects = new SelectList(projects, "Id", "Name"), Developers = new SelectList(projectDevelopers, "Id", "FullName", ticket.AssignedTo), Priorities = new SelectList(db.Priorities.OrderBy(p => p.Id), "Id", "Name", ticket.Priority), Statuses = new SelectList(db.Statuses, "Id", "Name", ticket.Status), Phases = new SelectList(db.TicketPhases, "Id", "Name", ticket.Phase), Actions = new SelectList(db.TicketActions, "Id", "Name", ticket.Action) }; return(View(model)); }
public ActionResult Create() { var appUserId = User.Identity.GetUserId(); var subPjts = AppHepler.GetProjects4CurrentUserById(appUserId); var model = new CreateEditTicketViewModel(); model.ProjectBelong = new SelectList(subPjts, "Id", "Name"); model.TicketType = new SelectList(DbContext.TicketTypes, "Id", "Name"); model.TicketPriority = new SelectList(DbContext.TicketPriorities, "Id", "Name"); model.GetTicketStatus = Convert.ToString(AppHepler.GetDefaultTicketStatus()); return(View(model)); }
// GET: Tickets/Create public ActionResult Create(int?id) { var project = db.Projects.Find(id); var userId = User.Identity.GetUserId(); string projectName; var projectId = project.Id; var developers = "Developer".UsersInRole().ToList(); var projectDevelopers = new List <ApplicationUser>(); //select project developers if (project != null) { foreach (var dev in developers) { if (project.Users.Any(u => u.Id == dev.Id)) { projectDevelopers.Add(dev); } } projectName = project.Name; } else { projectName = ""; } var model = new CreateEditTicketViewModel() { Ticket = new Ticket(), ProjectName = projectName, ProjectId = project.Id, Developers = new SelectList(projectDevelopers, "Id", "FullName"), Priorities = new SelectList(db.Priorities.OrderBy(p => p.Id), "Id", "Name"), Statuses = new SelectList(db.Statuses, "Id", "Name"), Phases = new SelectList(db.TicketPhases, "Id", "Name"), Actions = new SelectList(db.TicketActions, "Id", "Name") }; return(View(model)); }
public ActionResult Edit(int id, CreateEditTicketViewModel formData) { return(SaveTicket(id, formData)); }
private ActionResult SaveTicket(int?id, CreateEditTicketViewModel formData) { if (!ModelState.IsValid) { return(View(MStateNotValid(id))); } var appUserId = User.Identity.GetUserId(); Ticket ticketForSaving; if (!id.HasValue) { ticketForSaving = new Ticket(); ticketForSaving.DateCreated = DateTime.Now; ticketForSaving.CreatorId = appUserId; ticketForSaving.TicketStatusId = AppHepler.GetDefaultTicketStatus(); DbContext.Tickets.Add(ticketForSaving); } else { ticketForSaving = AppHepler.GetTicketById(id); if (ticketForSaving == null) { return(RedirectToAction(nameof(TicketController.Index))); } // Check OwnerShip var result = OwnershipCheckEdit(appUserId, ticketForSaving); if (result == nameof(TicketController.IndexSubAll)) { return(RedirectToAction(nameof(TicketController.IndexSubAll))); } else if (result == nameof(TicketController.IndexDevAll)) { return(RedirectToAction(nameof(TicketController.IndexDevAll))); } ticketForSaving.DateUpdated = DateTime.Now; if (IsAdmin() || IsProjectManager()) { if (formData.GetTicketStatus == null) { ModelState.AddModelError("", "Ticket Status is Required!"); return(View(MStateNotValid(id))); } var statusChanged = ChangeTeller(ticketForSaving, formData, PrevValue.TicketStatusId); CreateHistory(ticketForSaving, HistoryProperty.TicketStatus, statusChanged, appUserId, ticketForSaving.TicketStatusId.ToString(), formData.GetTicketStatus); ticketForSaving.TicketStatusId = Convert.ToInt32(formData.GetTicketStatus); } var subject = "Contents"; var body = $"One or more {subject} is/are edited"; SendEmail(ticketForSaving, appUserId, subject, body); } if (id.HasValue) { var titleChanged = ChangeTeller(ticketForSaving, formData, PrevValue.Title); CreateHistory(ticketForSaving, HistoryProperty.TicketTitle, titleChanged, appUserId, ticketForSaving.Title, formData.Title); var descriptionChanged = ChangeTeller(ticketForSaving, formData, PrevValue.Description); CreateHistory(ticketForSaving, HistoryProperty.TicketDescription, descriptionChanged, appUserId, ticketForSaving.Description, formData.Description); var projectChanged = ChangeTeller(ticketForSaving, formData, PrevValue.ProjectId); CreateHistory(ticketForSaving, HistoryProperty.ProjectBelong, projectChanged, appUserId, ticketForSaving.ProjectId.ToString(), formData.GetProjectBelong); var ticketPriorityChanged = ChangeTeller(ticketForSaving, formData, PrevValue.TicketPriorityId); CreateHistory(ticketForSaving, HistoryProperty.TicketPriority, ticketPriorityChanged, appUserId, ticketForSaving.TicketPriorityId.ToString(), formData.GetTicketPriority); var ticketTypeChanged = ChangeTeller(ticketForSaving, formData, PrevValue.TicketTypeId); CreateHistory(ticketForSaving, HistoryProperty.TicketType, ticketTypeChanged, appUserId, ticketForSaving.TicketTypeId.ToString(), formData.GetTicketType); } ticketForSaving.Title = formData.Title; ticketForSaving.Description = formData.Description; ticketForSaving.ProjectId = Convert.ToInt32(formData.GetProjectBelong); ticketForSaving.TicketPriorityId = Convert.ToInt32(formData.GetTicketPriority); ticketForSaving.TicketTypeId = Convert.ToInt32(formData.GetTicketType); DbContext.SaveChanges(); if (IsSubmitter()) { return(RedirectToAction(nameof(TicketController.IndexSubAll))); } if (IsDeveloper()) { return(RedirectToAction(nameof(TicketController.IndexDevAll))); } return(RedirectToAction(nameof(TicketController.Index))); }
public ActionResult Create(CreateEditTicketViewModel formData) { return(SaveTicket(null, formData)); }