public static void EditEvent(Event ev, string name, DataAccess.Type type, DateTime start, DateTime end, List <int> plansId, List <int> usersId, bool accepted) { using (CalendarDBContext db = new CalendarDBContext()) { ev = db.Events.Where(e => e.Id == ev.Id).First(); var plans = db.Plans; foreach (Plan plan in plans) { plan.Events.Remove(ev); } foreach (int id in plansId) { db.Plans.AsEnumerable().Where(p => p.Id == id).First().Events.Add(ev); ev.Plans.Add(db.Plans.AsEnumerable().Where(p => p.Id == id).First()); } type = db.Types.Where(t => t.Id == type.Id).First(); ev.Change(name, type, start, end); db.EventApprovals.Where(ea => ev.Id == ea.EventId && ActiveUser.Id == ea.UserId).First().Accepted = accepted; foreach (int id in usersId) { Event thisEvent = db.Events.Where(e => e.Id == ev.Id).First(); User user = db.Users.Where(u => u.Id == id).First(); db.EventApprovals.Add(new EventApproval() { Event = thisEvent, User = user, Accepted = false }); SendInvitationMail(thisEvent, user); } db.SaveChanges(); } }
public static void AddEvent(string name, DataAccess.Type type, DateTime start, DateTime end, List <int> plansId, List <int> usersId, bool accepted) { using (CalendarDBContext db = new CalendarDBContext()) { Event ev = new Event(); ev.Owner = db.Users.Where(u => u.Id == ActiveUser.Id).First(); foreach (int id in plansId) { db.Plans.AsEnumerable().Where(p => p.Id == id).First().Events.Add(ev); ev.Plans.Add(db.Plans.AsEnumerable().Where(p => p.Id == id).First()); } type = db.Types.Where(t => t.Id == type.Id).First(); ev.Change(name, type, start, end); db.Events.Add(ev); db.EventApprovals.Add(new EventApproval() { Event = ev, User = db.Users.Where(u => u.Id == ActiveUser.Id).First(), Accepted = accepted }); foreach (int id in usersId) { User user = db.Users.Where(u => u.Id == id).First(); db.EventApprovals.Add(new EventApproval() { Event = ev, User = user, Accepted = false }); SendInvitationMail(ev, user); } db.SaveChanges(); } }
public void EditEventTest() { var day = MockRepository.GenerateMock <Day>(new DateTime(2017, 9, 1)); day.Expect(p => day.GetPlanId()).Return(-1); day.GetEvents(); List <Event> before = day.Events; string name = "Edited Event Name"; DataAccess.Type type = new DataAccess.Type() { Id = 3 }; DateTime start = new DateTime(2017, 9, 1, 15, 0, 0); DateTime end = new DateTime(2017, 9, 1, 18, 0, 0); List <int> plansId = new List <int>(); DataModel.EditEvent(before[0], name, type, start, end, plansId); day.GetEvents(); List <Event> after = day.Events; Assert.AreEqual(before.Count, after.Count); foreach (Event ev in after) { if (!before.Exists(e => e.Id == ev.Id)) { Assert.Fail(); } if (ev.Id == before[0].Id) { Assert.AreEqual(name, ev.Name); Assert.AreEqual(type.Id, ev.Type.Id); Assert.AreEqual(start, ev.Start); Assert.AreEqual(end, ev.End); Assert.AreEqual(plansId.Count, ev.Plans.Count); foreach (Plan plan in ev.Plans) { Assert.IsTrue(plansId.Contains(plan.Id)); } } } }