コード例 #1
0
ファイル: TaskDataProvider.cs プロジェクト: Wndrr/Shameilst
        public async Task <TaskForUserModel> GetShared(ClaimsPrincipal claimsPrincipal, int taskId)
        {
            try
            {
                var user = await GetUser(claimsPrincipal);

                var userAndRelatedEntities = await Context.Users.Include(u => u.ListsSharedWithThisUser).ThenInclude(l => l.List).ThenInclude(l => l.Tasks).SingleAsync(u => u.Id == user.Id);

                var task = userAndRelatedEntities.ListsSharedWithThisUser.SelectMany(l => l.List.Tasks).Single(l => l.Id == taskId);

                var listsForUseModel = new TaskForUserModel(task);

                return(listsForUseModel);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                UiMessagingPipeline.AddUiMessageForUser(claimsPrincipal.FindFirstValue(ClaimTypes.NameIdentifier), new UiMessage("An error occured"));
                return(null);
            }
        }
コード例 #2
0
ファイル: TaskDataProvider.cs プロジェクト: Wndrr/Shameilst
        public async System.Threading.Tasks.Task Update(ClaimsPrincipal claimsPrincipal, int idOfTaskToRemove, TaskForUserModel model, bool isUpdatedBySharee)
        {
            try
            {
                var user = await GetUser(claimsPrincipal);

                if (isUpdatedBySharee)
                {
                    var currentUser = await Context.Users
                                      .Include(s => s.ListsSharedWithThisUser).ThenInclude(l => l.List).ThenInclude(l => l.Tasks)
                                      .SingleAsync(u => u.Id == user.Id);

                    var task = currentUser.ListsSharedWithThisUser.SelectMany(l => l.List.Tasks).Single(l => l.Id == idOfTaskToRemove);
                    task.Update(model);
                }
                else
                {
                    var currentUser = await Context.Users.Include(s => s.Lists).SingleAsync(u => u.Id == user.Id);

                    var task = currentUser.Lists.SelectMany(l => l.Tasks).Single(l => l.Id == idOfTaskToRemove);
                    task.Update(model);
                }
                await Context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                UiMessagingPipeline.AddUiMessageForUser(claimsPrincipal.FindFirstValue(ClaimTypes.NameIdentifier), new UiMessage("An error occured"));
            }
        }