public static async Task <dynamic> PostNewChecklistItem(CustomTaskItem item, HabiticaUser user, CustomTask task) { string str1 = "checklist"; try { return(await "https://habitica.com/api/v3/tasks/" .WithHeaders(new { x_api_user = user.Uuid, x_api_key = user.ApiToken }) .AppendPathSegment(task.HabiticaTaskId, true) .AppendPathSegment(str1, true) .PostJsonAsync(new { text = item.ItemName, }) .ReceiveJson()); } catch (FlurlHttpException ex) { return(ex.GetResponseJson()); } }
public static async Task <dynamic> PostScoreChecklistItem(CustomTask task, CustomTaskItem item) { try { return(await $"https://habitica.com/api/v3/tasks/{task.HabiticaTaskId}/checklist/{item.HabiticaItemId}/score" .GetJsonAsync()); } catch (FlurlHttpException ex) { return(ex.GetResponseJson()); } }
public static async Task <dynamic> DeleteChecklistItem(CustomTask task, CustomTaskItem item, HabiticaUser user) { try { return(await $"https://habitica.com/api/v3/tasks/{task.HabiticaTaskId}/checklist/{item.HabiticaItemId}" .WithHeaders(new { x_api_key = user.ApiToken, x_api_user = user.Uuid, }) .GetJsonAsync()); } catch (FlurlHttpException ex) { return(ex.GetResponseJson()); } }
public ActionResult CloneTask(int TaskId) { habiticatravelEntities MyHabitica = new habiticatravelEntities(); DefaultTask TaskToClone = MyHabitica.DefaultTasks.Find(TaskId); string userId = User.Identity.GetUserId(); HabiticaUser MyHabUser = MyHabitica.HabiticaUsers.Single(u => u.UserId == userId); CustomTask ClonedTask = new CustomTask { TaskName = TaskToClone.TaskName, TaskType = TaskToClone.TaskType, TaskTag = MyHabUser.TaskTagId, TaskNotes = TaskToClone.TaskNotes, TaskDueDate = TaskToClone.TaskDueDate, TaskDifficulty = TaskToClone.TaskDifficulty, ReminderStartDate = TaskToClone.ReminderStartDate, ReminderTime = TaskToClone.ReminderTime, UserId = userId, CustomTaskItems = new List <CustomTaskItem>() }; MyHabitica.CustomTasks.Add(ClonedTask); try { MyHabitica.SaveChanges(); } catch (System.Data.Entity.Validation.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; } List <DefaultTaskItem> CloneItemsList = new List <DefaultTaskItem>(MyHabitica.DefaultTasks.Find(TaskId).DefaultTaskItems.ToList()); List <CustomTaskItem> NewItemsList = new List <CustomTaskItem>(); for (int i = 0; i < CloneItemsList.Count; i++) { var TempItem = new CustomTaskItem(); int TempId = ClonedTask.TaskId; CustomTask TempTask = MyHabitica.CustomTasks.Find(TempId); TempItem.ItemName = CloneItemsList[i].ItemName; TempItem.TaskId = TempTask.TaskId; MyHabitica.CustomTaskItems.Add(TempItem); ClonedTask.CustomTaskItems.Add(TempItem); } try { MyHabitica.SaveChanges(); } catch (System.Data.Entity.Validation.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; } return(RedirectToAction("Index", "Home")); }