Exemple #1
0
 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();
     }
 }
Exemple #2
0
 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();
     }
 }
Exemple #3
0
        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));
                    }
                }
            }
        }