public async Task <ActionResult> ShowGroupTasks(int travelGroupId) { // we need the travelGroupID to find the current group we are working with. var MyHabiticaORM = new habiticatravelEntities(); var model = new TravelGroupandUserTaskandItems { ManyTaskAndItemsList = new List <TaskAndItems>(), Users = MyHabiticaORM.TravelGroupUsers.Where(u => u.TravelGroupId == travelGroupId).ToList(), TravelGroupandUser = new TravelGroupandUser { TravelGroup = MyHabiticaORM.TravelGroups.Find(travelGroupId), }, }; var tasks = MyHabiticaORM.CustomTasks.Where(ct => ct.TravelGroupId == travelGroupId && ct.UserId == null).ToList(); foreach (CustomTask task in tasks) { var tempTaskItems = new TaskAndItems { CustomTask = task }; model.ManyTaskAndItemsList.Add(tempTaskItems); } // going to find the task based on the task id , display all the task info into a view. // pk is TaskID , store that task in an object. Store it in a view bag. and send the viewbag to the view return(View(model)); }
public async Task <ActionResult> ViewTask(int TaskId) { var HabiticaORM = new habiticatravelEntities(); ViewBag.task = HabiticaORM.CustomTasks.Find(TaskId); List <CustomTaskItem> MyItemsList = HabiticaORM.CustomTaskItems.Where(t => t.TaskId == TaskId).ToList(); TaskAndItems model = new TaskAndItems(); model.CustomTask = HabiticaORM.CustomTasks.Find(TaskId); model.CustomTaskItem = MyItemsList; return(View(model)); }
public ActionResult EditCustomTask(int TaskId) { var HabiticaORM = new habiticatravelEntities(); var currentTaskItems = new List <CustomTaskItem>(HabiticaORM.CustomTasks.Find(TaskId).CustomTaskItems.ToList()); CustomTask TaskToEdit = HabiticaORM.CustomTasks.Find(TaskId); TaskAndItems TaskAndItemToEdit = new TaskAndItems { CustomTask = TaskToEdit, CustomTaskItem = currentTaskItems }; return(View(TaskAndItemToEdit)); //TaskAndItemToEdit is sent to EditCustomTask View which returns to SaveCustomTaskChanges }
public ActionResult EditGroupCustomTask(TravelGroupandUserTaskandItems model, int TaskId) { habiticatravelEntities HabiticaORM = new habiticatravelEntities(); var CurrentTaskItems = new List <CustomTaskItem>(HabiticaORM.CustomTasks.Find(TaskId).CustomTaskItems.ToList()); CustomTask TaskToEdit = HabiticaORM.CustomTasks.Find(TaskId); TaskAndItems TaskAndItemToEdit = new TaskAndItems { CustomTask = TaskToEdit, CustomTaskItem = CurrentTaskItems }; ViewBag.TaskToBeEdited = TaskToEdit; return(View(TaskAndItemToEdit)); }
public async Task <ActionResult> SaveCustomTaskChanges(TaskAndItems NewTaskAndItems) { var HabiticaORM = new habiticatravelEntities(); string UserId = User.Identity.GetUserId(); HabiticaUser MyHabUser = HabiticaORM.HabiticaUsers.Single(u => u.UserId == UserId); int TaskId = NewTaskAndItems.CustomTask.TaskId; CustomTask DBTask = HabiticaORM.CustomTasks.Find(TaskId); List <CustomTaskItem> DBItemsList = new List <CustomTaskItem>(); if (HabiticaORM.CustomTasks.Find(TaskId).CustomTaskItems != null) { DBItemsList = HabiticaORM.CustomTasks.Find(TaskId).CustomTaskItems.ToList(); } CustomTask MyTask = NewTaskAndItems.CustomTask; List <CustomTaskItem> MyItemsList = new List <CustomTaskItem>(); if (NewTaskAndItems.CustomTaskItem != null && DBItemsList.Count != 0) { foreach (CustomTaskItem T in NewTaskAndItems.CustomTaskItem) { MyItemsList.Add(T); HabiticaORM.Entry(HabiticaORM.CustomTaskItems.Find(T.TaskItemsId)).CurrentValues.SetValues(T); var ItemConfirm = (JObject)JObject.FromObject(await HabiticaHTTP.PutUpdateChecklistItem(T, MyHabUser, MyTask)); } } MyTask.CustomTaskItems = MyItemsList; HabiticaORM.Entry(DBTask).CurrentValues.SetValues(MyTask); var ItemConfirm2 = (JObject)JObject.FromObject(await HabiticaHTTP.PutUpdateTask(MyTask, MyHabUser)); HabiticaORM.SaveChanges(); return(RedirectToAction("Index", "Home")); }
public async Task <ActionResult> SaveCustomGroupTaskChanges(TaskAndItems NewTaskAndItems) { habiticatravelEntities HabiticaORM = new habiticatravelEntities(); int TaskId = NewTaskAndItems.CustomTask.TaskId; CustomTask DBTask = HabiticaORM.CustomTasks.Find(TaskId); List <CustomTaskItem> DBItemsList = new List <CustomTaskItem>(); if (DBTask.CustomTaskItems != null) { DBItemsList = HabiticaORM.CustomTasks.Find(TaskId).CustomTaskItems.ToList(); } CustomTask MyTask = NewTaskAndItems.CustomTask; List <CustomTaskItem> MyItemsList = new List <CustomTaskItem>(); if (NewTaskAndItems.CustomTaskItem != null && DBItemsList.Count != 0) { foreach (CustomTaskItem T in NewTaskAndItems.CustomTaskItem) { MyItemsList.Add(T); HabiticaORM.Entry(HabiticaORM.CustomTaskItems.Find(T.TaskItemsId)).CurrentValues.SetValues(T); } } MyTask.CustomTaskItems = MyItemsList; HabiticaORM.Entry(DBTask).CurrentValues.SetValues(MyTask); HabiticaORM.SaveChanges(); //Above changes the Group Item only. Below we change the values for each Group Member List <TravelGroupUser> GroupUsers = new List <TravelGroupUser>(); GroupUsers = HabiticaORM.TravelGroupUsers.Where(u => u.TravelGroupId == NewTaskAndItems.CustomTask.TravelGroupId).ToList(); foreach (TravelGroupUser user in GroupUsers) { HabiticaUser MyHabUser = HabiticaORM.HabiticaUsers.Single(u => u.UserId == user.UserId); CustomTask UserTask = HabiticaORM.CustomTasks.Single(u => u.TravelGroupId == NewTaskAndItems.CustomTask.TravelGroupId && u.UserId == user.UserId && u.TaskName == DBTask.TaskName); List <CustomTaskItem> UserItemsList = new List <CustomTaskItem>(); if (UserTask.CustomTaskItems != null) { UserItemsList = HabiticaORM.CustomTasks.Find(UserTask.TaskId).CustomTaskItems.ToList(); } CustomTask MyUserTask = NewTaskAndItems.CustomTask; List <CustomTaskItem> MyUserItemsList = new List <CustomTaskItem>(); if (NewTaskAndItems.CustomTaskItem != null && DBItemsList.Count != 0) { foreach (CustomTaskItem T in NewTaskAndItems.CustomTaskItem) { MyUserItemsList.Add(T); HabiticaORM.Entry(HabiticaORM.CustomTaskItems.Find(T.TaskItemsId)).CurrentValues.SetValues(T); var ItemConfirm = (JObject)JObject.FromObject(await HabiticaHTTP.PutUpdateChecklistItem(T, MyHabUser, MyTask)); } } MyUserTask.CustomTaskItems = MyUserItemsList; HabiticaORM.Entry(UserTask).CurrentValues.SetValues(MyUserTask); var ItemConfirm2 = (JObject)JObject.FromObject(await HabiticaHTTP.PutUpdateTask(MyTask, MyHabUser)); HabiticaORM.SaveChanges(); } return(RedirectToAction("Index", "Home")); }
public async Task <ActionResult> AddCustomTask(TaskAndItems model) { string userId = User.Identity.GetUserId(); var HabiticaORM = new habiticatravelEntities(); List <CustomTaskItem> items; if (model.CustomTaskItem != null) { items = model.CustomTaskItem; HabiticaORM.CustomTaskItems.AddRange(items); } else { items = new List <CustomTaskItem> { new CustomTaskItem() }; HabiticaORM.CustomTaskItems.AddRange(items); } model.CustomTask.UserId = userId; HabiticaUser MyHabUser = HabiticaORM.HabiticaUsers.Single(u => u.UserId == userId); model.CustomTask.TaskTag = MyHabUser.TaskTagId; model.CustomTask.TaskType = "todo"; model.CustomTaskItem = items; var TaskConfirm = (JObject)JObject.FromObject(await HabiticaHTTP.PostNewHabiticaTask(model.CustomTask, MyHabUser)); HabiticaORM.CustomTasks.Add(model.CustomTask); try { HabiticaORM.SaveChanges(); } catch (DbEntityValidationException dbEx) { Exception raise = dbEx; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { string message = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage); // raise a new exception nesting // the current instance as InnerException raise = new InvalidOperationException(message, raise); } } throw raise; } var currentTask = HabiticaORM.CustomTasks.Where(t => model.CustomTask.TaskId == t.TaskId).FirstOrDefault(); var TestItem = (string)TaskConfirm["data"]["id"]; currentTask.HabiticaTaskId = (string)TaskConfirm["data"]["id"]; string habtaskid = currentTask.HabiticaTaskId; HabiticaORM.SaveChanges(); if (model.CustomTask.CustomTaskItems.Count != 0) { var taskItems = model.CustomTaskItem.ToList(); foreach (var item in taskItems) { var ItemConfirm = (JObject)JObject.FromObject(await HabiticaHTTP.PostNewChecklistItem(item, MyHabUser, currentTask)); List <Checklist> AllChecklistItems = ItemConfirm["data"]["checklist"].ToObject <List <Checklist> >(); foreach (Checklist list in AllChecklistItems) { if (list.text == item.ItemName) { item.HabiticaItemId = list.id; } } item.TaskId = currentTask.TaskId; } currentTask.CustomTaskItems = taskItems; } else { currentTask.CustomTaskItems = new List <CustomTaskItem>(); } HabiticaORM.SaveChanges(); return(RedirectToAction("Index", "Home")); }