/// <summary> /// A helper method for updating attendances /// </summary> /// <param name="notification"></param> private void NotifyAttendees(Notification notification) { foreach (var attendance in Attendances.Select(a => a.Attendee)) { attendance.Notify(notification); } }
public void Updated(DateTime originalDateTime, string originalVenue) { var notification = Notification.GigUpdated(Id, originalDateTime, originalVenue); Notifications.Add(notification); Attendances.Select(f => f.Attendee).ToList(). ForEach(a => a.Notify(notification)); }
public void Cancelled() { IsCancelled = true; var notification = Notification.GigCancelled(Id); Notifications.Add(notification); Attendances.Select(f => f.Attendee).ToList() .ForEach(a => a.Notify(notification)); }
public void Canceled() { IsCanceled = true; var notification = Notification.GigCanceled(this); foreach (var Attendee in Attendances.Select(a => a.Attendee)) { Attendee.Notify(notification); } }
public void Modify(DateTime dateTime, string venue, byte genre) { var notification = Notification.GigUpdated(this, dateTime, venue); Venue = Venue; DateTime = dateTime; GenreId = genre; foreach (var attendee in Attendances.Select(a => a.Attendee)) { attendee.Notify(notification); } }
internal void Change(DateTime dateTime, string venue, byte genre) { var notification = Notification.GigUpdated(this, DateTime, Venue); Venue = venue; DateTime = dateTime; GenreId = genre; foreach (var attendee in Attendances.Select(a => a.Attendee)) { attendee.Notify(notification); } }
//extracted method from controller for cohesion purposes //methods relate together and Gig will be responsible to create notification public void Cancel() { IsCanceled = true; //When gig is canceled create Notification var notification = new Notification(NotificationType.GigCanceled, this); //iterate over the collection of attendees foreach (var attendee in Attendances.Select(a => a.Attendee)) { //call Notify() of ApplicationUser class as attendee is of that type //and the behaviour is refactored into the model class attendee.Notify(notification); } }
public Attendance CheckIn(DateTimeOffset checkInDate, LocationsCheckInEnum locationStatus, DateTimeOffset?checkOutDate, TimeSpan?duration) { //validation for the same CheckInDate if (Attendances.Count > 0) { if (Attendances.Select(o => o.CheckInDate.Date).Contains(checkInDate.Date)) { return(null); } } //validation for checkin more than current date var comparison2 = DateTimeOffset.Compare(checkInDate.Date, DateTimeOffset.Now.Date); if (comparison2 >= 1) { return(null); } var attendance = new Attendance(Guid.NewGuid(), this.Identity, checkInDate, locationStatus, checkOutDate, duration); if (Attendances == null) { Attendances = new List <Attendance>().AsReadOnly(); } var list = Attendances.ToList(); list.Add(attendance); ReadModel.Attendances.Add(new AttendanceReadModel(attendance)); Attendances = list.AsReadOnly(); return(attendance); }