public static void RemoveSharedChoreMembership(int sharedChoreId, int userId) { using (ProMaDB scope = new ProMaDB()) { SharedChoreMembership membership = scope.SharedChoreMemberships.FirstOrDefault(x => x.SharedChoreId == sharedChoreId && x.UserId == userId); scope.SharedChoreMemberships.Remove(membership); scope.SaveChanges(); // while this may affect other users, we only care that it was removed from this user CompletedChoreHandler.AddToUserChoreCacheIterator(userId); } }
public static void AddSharedChore(SharedChore toAdd, int seedUserId) { using (ProMaDB scope = new ProMaDB()) { scope.SharedChores.Add(toAdd); scope.Entry(toAdd).State = EntityState.Added; scope.SaveChanges(); } SharedChoreMembershipHandler.AddSharedChoreMembership(toAdd.SharedChoreId, seedUserId); // we just added the chore, so the only possible user on it is the logged in user CompletedChoreHandler.AddToUserChoreCacheIterator(seedUserId); }
public static void UnCompleteChore(int sharedChoreId, DateTime forDay) { using (ProMaDB scope = new ProMaDB()) { CompletedChore toRemove = scope.CompletedChores.FirstOrDefault(x => x.SharedChoreId == sharedChoreId && x.ChoreDate == forDay); scope.CompletedChores.Remove(toRemove); scope.SaveChanges(); } // change the cache for each user in this membership List <SharedChoreMembership> memberships = SharedChoreMembershipHandler.GetSharedChoreMembershipsForChore(sharedChoreId); foreach (SharedChoreMembership curMembership in memberships) { CompletedChoreHandler.AddToUserChoreCacheIterator(curMembership.UserId); } }
public static void AddSharedChoreMembership(int choreId, int userId) { using (ProMaDB scope = new ProMaDB()) { List <SharedChoreMembership> maximumSharedChoreOrdering = GetSharedChoreMembershipsForUser(userId); int orderForChore = 0; if (maximumSharedChoreOrdering.Count > 0) { orderForChore = maximumSharedChoreOrdering.Max(x => x.PersonalSortingOrder) + 1; } SharedChoreMembership newMembership = new SharedChoreMembership(); newMembership.UserId = userId; newMembership.SharedChoreId = choreId; newMembership.PersonalSortingOrder = orderForChore; scope.SharedChoreMemberships.Add(newMembership); scope.SaveChanges(); } CompletedChoreHandler.AddToUserChoreCacheIterator(userId); }
public static void CompleteChore(int sharedChoreId, DateTime forDay, int userId) { using (ProMaDB scope = new ProMaDB()) { CompletedChore newChore = new CompletedChore(); newChore.SharedChoreId = sharedChoreId; newChore.ChoreDate = forDay; newChore.Completed = true; newChore.UserId = userId; newChore.PostedTime = ProMaUser.NowTime(); scope.CompletedChores.Add(newChore); scope.SaveChanges(); } // change the cache for each user in this membership List <SharedChoreMembership> memberships = SharedChoreMembershipHandler.GetSharedChoreMembershipsForChore(sharedChoreId); foreach (SharedChoreMembership curMembership in memberships) { CompletedChoreHandler.AddToUserChoreCacheIterator(curMembership.UserId); } }