コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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"));
        }
コード例 #6
0
        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"));
        }
コード例 #7
0
        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"));
        }