public static void AddShare(int taskId, string objectId, string displayName) { //Share a task with a user or group GroupClaimContext db = new GroupClaimContext(); AadObject aadObject = db.AadObjects.Find(objectId); if (aadObject != null) { aadObject.DisplayName = displayName; } else { aadObject = new AadObject { AadObjectID = objectId, DisplayName = displayName, }; } Task task = db.Tasks.Find(taskId); List <AadObject> shares = task.SharedWith.ToList(); shares.Add(aadObject); task.SharedWith = shares; db.SaveChanges(); }
public static void AddTask(string taskText, string userObjectId, string userName) { // Add a new task to the db GroupClaimContext db = new GroupClaimContext(); Task newTask = new Task { Status = "NotStarted", TaskText = taskText, Creator = userObjectId, SharedWith = new List <AadObject>(), CreatorName = userName, }; // Get the AadObject representing from the user if it exists AadObject user = db.AadObjects.Find(userObjectId); if (user != null) { // Update the user's display name in case it has changed user.DisplayName = userName; } else { user = new AadObject { AadObjectID = userObjectId, DisplayName = userName, }; } newTask.SharedWith.Add(user); db.Tasks.Add(newTask); db.SaveChanges(); }
public static void UpdateShares(int taskId, List <Share> shares) { //Share a task with a user or group TdlrContext db = new TdlrContext(); Task task = db.Tasks.Find(taskId); // Maintain that the task is shared with the owner AadObject user = task.SharedWith.Where(u => u.AadObjectID == task.Creator).FirstOrDefault(); task.SharedWith = new List <AadObject>(); task.SharedWith.Add(user); foreach (Share share in shares) { AadObject aadObject = db.AadObjects.Find(share.objectID); if (aadObject != null) { aadObject.DisplayName = share.displayName; } else { aadObject = new AadObject { AadObjectID = share.objectID, DisplayName = share.displayName, }; } task.SharedWith.Add(aadObject); } db.SaveChanges(); }