public ActionResult UpdateChecklist(RepairStatusView repair, string upc) { Trello t = new Models.Trello(); var cards = t.GetCards(SessionVariables.CurrentLocation.ToString()); foreach (var card in cards) { if (card.name == upc) { var checklists = t.GetChecklists(card.id); var checklist = checklists.Last().checkItems; // check if checklist item was changed for (var i = 0; i < checklist.Count(); i++) { if ((repair.Checklist[i].state == true && checklist[i].state == "incomplete") || (repair.Checklist[i].state == false && checklist[i].state == "complete")) { var newState = "incomplete"; if (repair.Checklist[i].state == true) { newState = "complete"; } var result = t.PutChangeChecklistItem(card.id, checklist[i].id, newState); } if (repair.Checklist[i].delete == true) { t.DeleteChecklistItem(card.id, checklist[i].id); } } } } return(RedirectToAction("Index")); }
// Marks any existing checklist items as complete, closes the due date, and marks the repair request as closed public ActionResult CloseRepair(string itemUpc, string itemLoc, string description, string confirm) { if (itemUpc == null || itemLoc == null || description == "" || confirm != "close") { TempData["message"] = "To close a request for repair, you must include a closing note and confirm that the repair has been resolved. Please try again."; return(RedirectToAction("Index")); } if (confirm == "nevermind") { TempData["message"] = "To close a request for repair, you must confirm that the repair has been resolved. Please try again."; return(RedirectToAction("Index")); } bool success = false; Trello t = new Models.Trello(); // get card id first var cards = t.GetCards(itemLoc); string cardId = null; foreach (var card in cards) { if (card.name == itemUpc) { cardId = card.id; continue; } } if (cardId != null) { var user = db.tb_CSULabTechs.FirstOrDefault(m => m.ENAME == SessionVariables.CurrentUserId); // retrieves the checklist and close any open checklist items var checklists = t.GetChecklists(cardId); var checklistId = checklists.Last().id; List <Trello.CheckItem> checklistItems = t.GetChecklistItems(checklistId); foreach (var item in checklistItems) { var result = t.PutChangeChecklistItem(cardId, item.id, "complete"); } // post the close note as a comment description = "CLOSED --> " + description + " -- Posted by: " + user.First_Name + " " + user.Last_Name + "(" + DateTime.Now.ToString() + ")"; var commentId = t.PostCardComment(cardId, description); // mark the due date as complete var dueDateClosed = t.PutCloseDueDate(cardId); // determine success if (commentId != null && dueDateClosed != null) { success = true; } } if (success) // success { TempData["message"] = "The repair request for Item #" + itemUpc + " has been closed."; return(RedirectToAction("Index")); } else { TempData["message"] = "There was a problem closing this repair. Please try again."; return(RedirectToAction("Index")); } }