コード例 #1
0
        public void Delete(CalendarEventVm calendarEventVm)
        {
            if (calendarEventVm.EventType == EventType.Personal)
            {
                var history = _unit.EmailOnEventHistory.Get(e => e.Event.Id == calendarEventVm.Id);

                _unit.EmailOnEventHistory.Delete(history);
                _unit.PersonalEvent.Delete(_unit.PersonalEvent.Get(l => l.Event.Id == calendarEventVm.Id));
            }
            else
            {
                var personalLinks = _unit.PersonalEvent.Load(link => link.Event.Id == calendarEventVm.Id).ToList();
                var teamLinks = _unit.TeamEvent.Load(link => link.Event.Id == calendarEventVm.Id).ToList();

                //Clear event history records
                _unit.EmailOnEventHistory
                    .Load(history => history.Event.Id == calendarEventVm.Id)
                    .ToList()
                    .ForEach(_unit.EmailOnEventHistory.Delete);

                //Clear event link records
                personalLinks.ForEach(_unit.PersonalEvent.Delete);
                teamLinks.ForEach(_unit.TeamEvent.Delete);
            }
        }
コード例 #2
0
        public int Update(CalendarEventVm calendarEventVm)
        {
            Delete(calendarEventVm);

            //Recreate event
            var user = _unit.EmailOnEventHistory.Get(e => e.Event.Id == calendarEventVm.Id).User;

            calendarEventVm.Id = 0;
            return Save(calendarEventVm, user.Id);
        }
コード例 #3
0
        public void Should_not_save_personal_event_and_email_on_event_history_When_user_does_not_exist(string userName)
        {
            //arrange
            var notExistingUserId = 0;
            var personalEvent = new CalendarEventVm { EventType = EventType.Personal };

            //act
            _service.Save(personalEvent, notExistingUserId);

            //assert
            _repoUnit.EmailOnEventHistory.Load().Should().HaveCount(0);
            _repoUnit.EmailOnEventHistory.Load().Should().HaveCount(0);
        }
コード例 #4
0
ファイル: EventController.cs プロジェクト: rnofenko/Calendar
        public ActionResult Edit(CalendarEventVm calendarEvent)
        {
            try
            {
                _service.Update(calendarEvent);
            }
            catch (WarningException exception)
            {
                ModelState.AddModelError("", exception.Message);
            }

            return Json(new {redirectToUrl = Url.Action("Index", "Home")});
        }
コード例 #5
0
        public void Should_not_create_any_record_in_team_event_repository_When_saving_personal_event(string userName)
        {
            //arrange
            var user = _repoUnit.User.Get(u => u.Email == _users[userName].Email);
            var personalEvent = new CalendarEventVm { EventType = EventType.Personal };

            var eventLink = new[] { new PersonalEventLink { EventStatus = 0, Event = personalEvent.Map(), User = user } };

            //act
            _service.Save(personalEvent, user.Id);

            //assert
            _repoUnit.TeamEvent.Load().Should().HaveCount(0);
        }
コード例 #6
0
        private List<User> getEventUsers(CalendarEventVm calendarEventVm)
        {
            var eventUsers = new List<User>();

            if (calendarEventVm.Users != null)
            {
                calendarEventVm.Users.ForEach(user => eventUsers.Add(_unit.User.Get(user.UserId)));
            }

            if (calendarEventVm.Teams != null)
            {
                calendarEventVm.Teams.ForEach(team => _unit.Team.Get(team.Id)
                               .Users.ToList().ForEach(eventUsers.Add));
            }

            return eventUsers.Distinct().ToList();
        }
コード例 #7
0
 public int Save(CalendarEventVm calendarEventVm, int userId)
 {
     if (calendarEventVm.EventType == EventType.Personal) return savePersonalEvent(calendarEventVm, userId);
     if (calendarEventVm.EventType == EventType.Meeting) return saveMeetingEvent(calendarEventVm);
     return 0;
 }
コード例 #8
0
        private void saveToEmailHistory(CalendarEventVm calendarEventVm, CalendarEvent calendarEvent, int userId)
        {
            var eventUsers = getEventUsers(calendarEventVm);
            if (calendarEvent.EventType == EventType.Personal) eventUsers.Add(_unit.User.Get(userId));

            eventUsers.ForEach(u => _unit.EmailOnEventHistory.Save(new EmailOnEventHistory {Event = calendarEvent, User = u}));
        }
コード例 #9
0
        private int savePersonalEvent(CalendarEventVm calendarEventVm, int userId)
        {
            var calendarEvent = calendarEventVm.Map();

            if(calendarEvent.Id == 0)
            {
                _unit.PersonalEvent.Save(new PersonalEventLink { Event = calendarEvent, User = _unit.User.Get(userId) });
            }

            saveToEmailHistory(calendarEventVm, calendarEvent, userId);

            return calendarEvent.Id;
        }
コード例 #10
0
ファイル: EventService.cs プロジェクト: rnofenko/Calendar
        public void Save(CalendarEventVm calendarEventVm, string currentUserEmail)
        {
            var currentUser = _unit.User.Get(user => user.Email == currentUserEmail);

            if (currentUser != null)
            {
                _savingService.Save(calendarEventVm, currentUser.Id);
            }
        }
コード例 #11
0
        public void Should_save_personal_event_for_existing_user(string userName)
        {
            //arrange
            var user = _repoUnit.User.Get(u => u.Email == _users[userName].Email);
            var personalEvent = new CalendarEventVm {EventType = EventType.Personal};

            var eventLink = new[] {new PersonalEventLink {EventStatus = 0, Event = personalEvent.Map(), User = user}};

            //act
            _service.Save(personalEvent, user.Id);

            //assert
            var events = _repoUnit.PersonalEvent.Load().ToList();
            events.ForEach(e => e.Id = 0); //To not consider record id's

            events.ShouldAllBeEquivalentTo(eventLink);
        }
コード例 #12
0
ファイル: EventService.cs プロジェクト: rnofenko/Calendar
        public int Update(CalendarEventVm calendarEventVm)
        {
            if (calendarEventVm.Id > 0)
            {
                return _savingService.Update(calendarEventVm);
            }

            return 0;
        }
コード例 #13
0
ファイル: EventController.cs プロジェクト: rnofenko/Calendar
 public ActionResult Delete(CalendarEventVm calendarEvent)
 {
     _service.Delete(calendarEvent);
     return RedirectToAction("Index", "Home");
 }
コード例 #14
0
        public void Should_update_personal_event(string userName)
        {
            //arrange
            var user = _repoUnit.User.Get(u => u.Email == _users[userName].Email);
            var personalEvent = new CalendarEventVm { EventType = EventType.Personal };

            var eventLink = new[] { new PersonalEventLink { EventStatus = 0, Event = personalEvent.Map(), User = user } };
            personalEvent.Id = _service.Save(personalEvent, user.Id);

            personalEvent.Text = "new Event";
            personalEvent.Title = "Title";

            //act
            _service.Update(personalEvent);

            //assert
            _repoUnit.PersonalEvent.Load().Select(link => link.Event).ShouldAllBeEquivalentTo(new[]{personalEvent});
        }
コード例 #15
0
ファイル: EventService.cs プロジェクト: rnofenko/Calendar
 public void Delete(CalendarEventVm calendarEvent)
 {
     _savingService.Delete(calendarEvent);
 }
コード例 #16
0
        private int saveMeetingEvent(CalendarEventVm calendarEventVm)
        {
            var calendarEvent = calendarEventVm.Map();

            if (calendarEventVm.Users != null)
            {
                calendarEventVm.Users.ForEach(user => _unit.PersonalEvent.Save(new PersonalEventLink { Event = calendarEvent, User = _unit.User.Get(user.UserId) }));
            }

            if (calendarEventVm.Teams != null)
            {
                calendarEventVm.Teams.ForEach(team =>
                    _unit.TeamEvent.Save(new TeamEventLink { Event = calendarEvent, Team = _unit.Team.Get(team.Id) }));
            }

            saveToEmailHistory(calendarEventVm, calendarEvent, 0);

            return calendarEvent.Id;
        }
コード例 #17
0
        public void Should_save_email_on_event_history_When_save_personal_event_for_exisiting_user(string userName)
        {
            //arrange
            var user = _repoUnit.User.Get(u => u.Email == _users[userName].Email);
            var personalEvent = new CalendarEventVm { EventType = EventType.Personal };

            var mailingHistoryRecord = new[] { new EmailOnEventHistory { Event = personalEvent.Map(), User = user, EmailOnEventStatus = EmailOnEventStatus.NotSent } };

            //act
            _service.Save(personalEvent, user.Id);

            //assert
            var emailOnEventHistories = _repoUnit.EmailOnEventHistory.Load().ToList();
            emailOnEventHistories.ForEach(e => e.Id = 0); //To not consider record id's

            emailOnEventHistories.ShouldAllBeEquivalentTo(mailingHistoryRecord);
        }