public ActionResult CreateIssue(UIIssue_C uim) { AjaxStatus status = new AjaxStatus(); using (var context = new DataContext()) { using (var transaction = context.Database.BeginTransaction()) { try { Account account = base.GetLoginAccount(); Issue dbm = uim.CreateModel(); IssueOperations.TryCreate(account, context, dbm); context.SaveChanges(); IssueTransition transition = uim.CreateModel(dbm, account); IssueTransitionOperations.TryCreate(account, context, transition); context.SaveChanges(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); base.HandleException("CreateIssue", e); status.SetError(e.Message); } } } return(Json(status)); }
public ActionResult RescheduleIssue(UIIssueSchedule_U uim) { AjaxStatus status = new AjaxStatus(); using (var context = new DataContext()) { try { Account account = base.GetLoginAccount(); Issue dbm = IssueOperations.TryRead(account, context, uim.id); // Update model uim.UpdateModel(dbm); IssueOperations.TryUpdate(account, context, dbm); // Mark as unread IssueOperations.TryDeleteReaders(account, context, dbm.id); context.SaveChanges(); } catch (Exception e) { base.HandleException("RescheduleIssue", e); status.SetError(e.Message); } } return(Json(status)); }
public ActionResult UpdateIssueStatus(UIIssueStatus_U uim) { AjaxStatus status = new AjaxStatus(); using (var context = new DataContext()) { using (var transaction = context.Database.BeginTransaction()) { try { Account account = base.GetLoginAccount(); Issue dbm = IssueOperations.TryRead(account, context, uim.id); // Create transition IssueTransition transition = uim.CreateModel(dbm, account); IssueTransitionOperations.TryCreate(account, context, transition); // Update model uim.UpdateModel(dbm); IssueOperations.TryUpdate(account, context, dbm); // Mark as unread IssueOperations.TryDeleteReaders(account, context, dbm.id); // TODO: If new status is to archive, move to archived tables context.SaveChanges(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); base.HandleException("UpdateIssueStatus", e); status.SetError(e.Message); } } } return(Json(status)); }
/* Render */ public ActionResult Index() { Account account = base.GetLoginAccount(false); if (account == null || !IssueOperations.CanRender(account)) { return(base.ToLoginPage()); } return(View()); }
public ActionResult ListIssues(int customer, int areatype, int status, int prio) { using (var context = new DataContext()) { try { Account account = base.GetLoginAccount(); IQueryable <Issue> query = IssueOperations.TryList(account, context).Where(i => i.status < Issue.__STATUS_ARCHIVED); // Handle filtering if (customer != Customer.CUSTOMER_ANY) { query = query.Where(i => i.customerid == customer); } if (areatype != Issue.AREATYPE_ANY) { query = query.Where(i => i.areatype == areatype); } if (status != Issue.STATUS_ANY) { query = query.Where(i => i.status == status); } if (prio != Issue.PRIO_ANY) { query = query.Where(i => i.prio == prio); } // Execute query IList <Issue> dbms = query.ToList(); // Compose view models IList <UIIssueCalendar_List> uims = new List <UIIssueCalendar_List>(dbms.Count); var accounts = context.Accounts.Where(a => a.authz == Account.AUTHZ_TECHNICIAN && a.active == Account.ACTIVE).Select(a => new { a.id, a.firstname, a.lastname }).ToList(); foreach (Issue dbm in dbms) { var assignee = accounts.FirstOrDefault(a => a.id == dbm.assignedid); string assigneename = assignee == null ? "--" : assignee.firstname + " " + assignee.lastname; uims.Add(new UIIssueCalendar_List(dbm, assigneename)); } return(Json(uims)); } catch (Exception e) { base.HandleException("ListIssues", e); return(null); } } }
public ActionResult ListIssues(int customer, int areatype, int status, int prio) { using (var context = new DataContext()) { try { Account account = base.GetLoginAccount(); IQueryable <Issue> query = IssueOperations.TryList(account, context).Where(i => i.status < Issue.__STATUS_ARCHIVED); // Handle filtering if (customer != Customer.CUSTOMER_ANY) { query = query.Where(i => i.customerid == customer); } if (areatype != Issue.AREATYPE_ANY) { query = query.Where(i => i.areatype == areatype); } if (status != Issue.STATUS_ANY) { query = query.Where(i => i.status == status); } if (prio != Issue.PRIO_ANY) { query = query.Where(i => i.prio == prio); } // Execute query IList <Issue> dbms = query.ToList(); IList <Account> techs = context.Accounts.Where(a => a.authz == Account.AUTHZ_TECHNICIAN && a.active == Account.ACTIVE).OrderBy(a => a.firstname).ThenBy(a => a.lastname).ToList(); // Compose view models UIIssueSchedule_List uims = new UIIssueSchedule_List(dbms, techs); return(Json(uims)); } catch (Exception e) { base.HandleException("ListIssues", e); return(null); } } }
public ActionResult ReadIssue(int id) { using (var context = new DataContext()) { try { Account account = base.GetLoginAccount(); Issue dbm = IssueOperations.TryRead(account, context, id); Customer customer = CustomerOperations.TryRead(account, context, dbm.customerid); IList <IssueFeedback> feedbacks = IssueFeedbackOperations.TryList(account, context, dbm.id).ToList(); IList <IssueTransition> transitions = IssueTransitionOperations.TryList(account, context, dbm.id).ToList(); return(Json(new UIIssue_R(dbm, customer, feedbacks, transitions))); } catch (Exception e) { base.HandleException("ReadIssue", e); return(null); } } }
public ActionResult UpdateIssue(UIIssueProblem_U uim) { AjaxStatus status = new AjaxStatus(); using (var context = new DataContext()) { try { Account account = base.GetLoginAccount(); Issue dbm = IssueOperations.TryRead(account, context, uim.issueid); dbm = uim.UpdateModel(dbm); IssueOperations.TryUpdate(account, context, dbm); context.SaveChanges(); } catch (Exception e) { base.HandleException("UpdateIssue", e); status.SetError(e.Message); } } return(Json(status)); }
public ActionResult ListIssues(int draw, int start, int length, int customer, int areatype, int status, int prio) { using (var context = new DataContext()) { try { Account account = base.GetLoginAccount(); IQueryable <Issue> query = IssueOperations.TryList(account, context).Where(i => i.status < Issue.__STATUS_ARCHIVED); // Handle filtering if (customer != Customer.CUSTOMER_ANY) { query = query.Where(i => i.customerid == customer); } if (areatype != Issue.AREATYPE_ANY) { query = query.Where(i => i.areatype == areatype); } if (status != Issue.STATUS_ANY) { query = query.Where(i => i.status == status); } if (prio != Issue.PRIO_ANY) { query = query.Where(i => i.prio == prio); } // Possibly apply filter var searchstring = Request["search[value]"]; if (!String.IsNullOrWhiteSpace(searchstring)) { query = query.Where(i => i.id.ToString().StartsWith(searchstring) || i.name.Matches(searchstring) || i.address.Matches(searchstring)); } int recordsFiltered = query.Count(); // Execute query IList <Issue> dbms = query.OrderBy(i => i.id).Skip(start).Take(length).ToList(); int recordsTotal = context.Issues.Count(); // Compose view models IList <UIIssueList_List> uims = new List <UIIssueList_List>(dbms.Count); var accounts = context.Accounts.Where(a => a.authz == Account.AUTHZ_TECHNICIAN && a.active == Account.ACTIVE).Select(a => new { a.id, a.firstname, a.lastname }).ToList(); foreach (Issue dbm in dbms) { var assignee = accounts.FirstOrDefault(a => a.id == dbm.assignedid); string assigneename = assignee == null ? "--" : assignee.firstname + " " + assignee.lastname; uims.Add(new UIIssueList_List(dbm, assigneename)); } return(Json(new { draw = draw, recordsTotal = recordsTotal, recordsFiltered = recordsFiltered, data = uims })); } catch (Exception e) { base.HandleException("ListIssues", e); return(null); } } }