private async Task GetAttendees(LessonInfo selectedLessonInfo)
        {
            ResponseResult attendeesResult =
                await _bmsService.GetUsersByLessonId(selectedLessonInfo.Id.ToString());

            if (!HasErrorMsg(attendeesResult.Status, attendeesResult.Message))
            {
                List <UserInfo> attendees = attendeesResult.Data as List <UserInfo>;

                if (attendees != null)
                {
                    List <UserInfo> globalUserInfos = IoC.Get <List <UserInfo> >();
                    globalUserInfos.Clear();

                    Attendees.Clear();
                    attendees.ForEach(attendee =>
                    {
                        Attendees.Add(attendee);
                        globalUserInfos.Add(attendee);
                    });

                    AttendeesCount = string.Format($"(共{Attendees.Count}人)");

                    var masterUser =
                        Attendees.FirstOrDefault(userInfo => userInfo.UserId == CurLessonDetail?.MasterUserId);

                    if (masterUser != null)
                    {
                        masterUser.IsTeacher = true;
                    }
                }
            }
        }
        public async Task GetAttendees()
        {
            if (IsBusy)
            {
                return;
            }

            try
            {
                IsBusy = true;
                Attendees.Clear();

                var items = await AzureMobileService.Instance.GetAttendees();

                foreach (var item in items)
                {
                    Attendees.Add(item);
                }
            }
            catch (Exception e)
            {
                LogHelper.Instance.AddLog(e);
            }
            finally
            {
                IsBusy = false;
            }
        }
Exemple #3
0
        public Attendance AddAttendance(Member member, AttendanceRegisterType attendanceRegisterType)
        {
            var attendance = new Attendance(member, this, attendanceRegisterType);

            Attendees.Add(attendance);
            return(attendance);
        }
Exemple #4
0
        public SessionAttendee AddAttendeeSession(AddAttendeeAtSession cmd, Seminar seminar)
        {
            if (Status != SessionStatus.Running)
            {
                throw new DomainException($"Can't add attendee at {Status} session");
            }

            var registered = seminar.RegisteredAttendees.Any(x => x.Id == cmd.Id);

            if (!registered)
            {
                throw new DomainException($"Attendee {cmd.Id} not registered at seminar");
            }

            var attendeeToAdd = new SessionAttendee
            {
                Id                = cmd.Id,
                SessionId         = cmd.SessionId,
                AttendeeStartTime = DateTime.Now,
            };

            Attendees.Add(attendeeToAdd);

            return(attendeeToAdd);
        }
Exemple #5
0
        public bool Register(Student attendee)
        {
            if (Attendees.Contains(attendee))
            {
                return(false);
            }

            Attendees.Add(attendee);
            return(true);
        }
Exemple #6
0
        public void SeatHostHimself()
        {
            var host = new Attendee("Host");

            foreach (var seatedAttendee in Attendees)
            {
                host.PotencialHapinnes.Add(seatedAttendee.Name, 0);
                seatedAttendee.PotencialHapinnes.Add("Host", 0);
            }
            Attendees.Add(host);
        }
        private void addAttendeeButton_Click(object sender, EventArgs e)
        {
            TextBox  attendeeEmailTextBox = new TextBox();
            Label    attendeeLabel        = new Label();
            ComboBox rsvpComboBox         = new ComboBox();
            Button   deleteAttendeeButton = new Button();
            GroupBox attendeeGroupBox     = new GroupBox();

            if (attendeePanel.Controls.Count <= 5)
            {
                attendeeGroupBox.Size = new Size(attendeePanel.Width, 50);
                attendeeGroupBox.Name = "attendeeGroupBox" + numOfAttendees.ToString();

                attendeeLabel.Location = new Point(25, attendeeGroupBox.Size.Height / 2);
                attendeeLabel.Text     = "Email: ";
                attendeeLabel.Name     = "attendeeLabel" + numOfAttendees.ToString();
                attendeeLabel.Size     = new Size(50, 21);

                attendeeEmailTextBox.Location = new Point(attendeeLabel.Right, attendeeGroupBox.Size.Height / 2);
                attendeeEmailTextBox.Name     = "attendeeEmailTextbox" + numOfAttendees.ToString();

                List <string> rsvp = new List <string>()
                {
                    "False", "True"
                };
                rsvpComboBox.DataSource = rsvp;
                rsvpComboBox.Location   = new Point(attendeeEmailTextBox.Location.X + 105, attendeeGroupBox.Size.Height / 2);
                rsvpComboBox.Name       = "rsvpComboBox" + numOfAttendees.ToString();
                rsvpComboBox.Size       = new Size(60, 21);

                deleteAttendeeButton.Text     = "Delete";
                deleteAttendeeButton.Location = new Point(rsvpComboBox.Right + 4, attendeeGroupBox.Size.Height / 2);
                deleteAttendeeButton.Name     = "deleteAttendeeButton" + numOfAttendees.ToString();
                deleteAttendeeButton.Size     = new Size(46, 23);

                Attendees.Add(attendeeEmailTextBox);
                AttendeesRsvp.Add(rsvpComboBox);

                numOfAttendees++;

                attendeeGroupBox.Controls.Add(attendeeLabel);
                attendeeGroupBox.Controls.Add(attendeeEmailTextBox);
                attendeeGroupBox.Controls.Add(rsvpComboBox);
                attendeeGroupBox.Controls.Add(deleteAttendeeButton);

                attendeePanel.Controls.Add(attendeeGroupBox);

                RepositionAttendees();

                deleteAttendeeButton.Click += new EventHandler(deleteAttendeeButton_Click);
            }
        }
        private void AddAttendee(object obj)
        {
            var user = new User {
                Id = Id, Name = Name, MailID = MailID
            };

            if (_meetingManager.Add(user))
            {
                Attendees.Add(user);
            }
            else
            {
                MessageBox.Show("Attendee already present");
            }
        }
Exemple #9
0
 public void BuildAttendees(int count = 4)
 {
     this.Attendees = new List <EventAttendee>();
     for (var i = 0; i < count; i++)
     {
         var e = new EventAttendee {
             Person = new Person()
         };
         if (i == 0)
         {
             e.IsPrimaryContact = true;
         }
         e.Person.Base.BuildAddresses();
         e.Person.Base.BuildEmailAddresses();
         e.Person.Base.BuildPhoneNumbers();
         e.PlayerNumber = i + 1;
         Attendees.Add(e);
     }
 }
Exemple #10
0
        public void NoticePersonalities(string letter)
        {
            var lines = InputLineParser.GetAllLines(letter);

            foreach (var line in lines)
            {
                var personality      = PersonalityParser.ParsePersonality(line);
                var existingAttendee = Attendees.SingleOrDefault(att => att.Name == personality.Name);
                if (existingAttendee == null)
                {
                    var newAttendee = new Attendee(personality.Name);
                    newAttendee.PotencialHapinnes.Add(personality.Neighbor, personality.Happiness);
                    Attendees.Add(newAttendee);
                }
                else
                {
                    existingAttendee.PotencialHapinnes.Add(personality.Neighbor, personality.Happiness);
                }
            }
        }
Exemple #11
0
        public void Deserialize(System.IO.TextReader rdr, Serializer serializer)
        {
            string name, value;
            var    parameters = new System.Collections.Specialized.NameValueCollection();

            while (rdr.Property(out name, out value, parameters) && !string.IsNullOrEmpty(name))
            {
                switch (name.ToUpper())
                {
                case "BEGIN":
                    switch (value)
                    {
                    case "VALARM":
                        var a = serializer.GetService <Alarm>();
                        a.Deserialize(rdr, serializer);
                        Alarms.Add(a);
                        break;
                    }
                    break;

                case "ATTENDEE":
                    var contact = new Contact();
                    contact.Deserialize(value, parameters);
                    Attendees.Add(contact);
                    break;

                case "CATEGORIES":
                    Categories = value.SplitEscaped().ToList();
                    break;

                case "CLASS": Class = value.ToEnum <Classes>(); break;

                case "CREATED": Created = value.ToDateTime(); break;

                case "DESCRIPTION": Description = value; break;

                case "DTEND": End = value.ToDateTime(); break;

                case "DTSTAMP": DTSTAMP = value.ToDateTime().GetValueOrDefault(); break;

                case "DTSTART": Start = value.ToDateTime(); break;

                case "LAST-MODIFIED": LastModified = value.ToDateTime(); break;

                case "LOCATION": Location = value; break;

                case "ORGANIZER":
                    Organizer = serializer.GetService <Contact>();
                    Organizer.Deserialize(value, parameters);
                    break;

                case "PRIORITY": Priority = value.ToInt(); break;

                case "SEQUENCE": Sequence = value.ToInt(); break;

                case "STATUS": Status = value.ToEnum <Statuses>(); break;

                case "SUMMARY": Summary = value; break;

                case "TRANSP": Transparency = value; break;

                case "UID": UID = value; break;

                case "URL": Url = value.ToUri(); break;

                case "ATTACH":
                    var attach = value.ToUri();
                    if (attach != null)
                    {
                        Attachments.Add(attach);
                    }
                    break;

                case "RRULE":
                    var rule = serializer.GetService <Recurrence>();
                    rule.Deserialize(null, parameters);
                    Recurrences.Add(rule);
                    break;

                case "END": return;

                default:
                    Properties.Add(Tuple.Create(name, value, parameters));
                    break;
                }
            }

            IsAllDay = Start == End;
        }
Exemple #12
0
 public void AddAttendee([NotNull] IContact aContact) => Attendees.Add(aContact);
Exemple #13
0
 public void Attend(Attendee attendee)
 {
     EnsureSessionIsNotFull();
     Attendees.Add(attendee);
 }
        /// <summary>
        /// Fills this CalendarItem with the data from an Outlook AppointmentItem object
        /// </summary>
        /// <param name="item">The Outlook AppointmentItem to use</param>
        /// <param name="createID">Specify if you need to create and ID.</param>
        public void LoadFromOutlookAppointment(AppointmentItem item, bool createID = true)
        {
            m_source = "Outlook";

            Start    = item.Start.ToString(DateTimeFormatString);
            End      = item.End.ToString(DateTimeFormatString);
            Body     = item.Body;
            Subject  = item.Subject;
            Location = item.Location;
            m_isUsingDefaultReminders = !item.ReminderSet;
            ReminderTime        = m_isUsingDefaultReminders ? DEFAULT_REMINDER_TIME : item.ReminderMinutesBeforeStart;
            StartTimeZone       = TimeZoneConverter.WindowsToIana(item.StartTimeZone.ID);
            EndTimeZone         = TimeZoneConverter.WindowsToIana(item.EndTimeZone.ID);
            IsAllDayEvent       = item.AllDayEvent;
            StartTimeInTimeZone = item.StartInStartTimeZone.ToString(DateTimeFormatString);
            EndTimeInTimeZone   = item.EndInEndTimeZone.ToString(DateTimeFormatString);

            string entryId   = null;
            string globalId  = null;
            bool   useParent = false;

            // This ensures that if we grab a occurence of a recurring appointment we use the proper global ID.
            // You must use the MasterAppointment's global ID since that is what I track.
            if (item.IsRecurring)
            {
                if (item.RecurrenceState != OlRecurrenceState.olApptMaster)
                {
                    if (item.Parent is AppointmentItem parent)
                    {
                        entryId   = parent.EntryID;
                        globalId  = parent.GlobalAppointmentID;
                        useParent = true;
                    }
                }
            }

            // Outlook is f*****g stupid and changes the GlobalAppointmentID everytime it restarts but doesn't change the EntryID so use one or the other.
            var id = Archiver.Instance.FindIdentifier(useParent ? entryId : item.EntryID) ?? Archiver.Instance.FindIdentifier(useParent ? globalId : item.GlobalAppointmentID);

            if (id == null)
            {
                CalendarItemIdentifier.OutlookEntryId  = useParent ? entryId : item.EntryID;
                CalendarItemIdentifier.OutlookGlobalId = useParent ? globalId : item.GlobalAppointmentID;
            }
            else
            {
                CalendarItemIdentifier = id;
            }

            if (string.IsNullOrEmpty(CalendarItemIdentifier.GoogleId))
            {
                if (createID)
                {
                    CalendarItemIdentifier.GoogleId = GuidCreator.Create();
                }
            }

            // Check if the event is recurring
            if (item.IsRecurring)
            {
                var recure = item.GetRecurrencePattern();
                Recurrence = new Recurrence(recure);
                //Recurrence.AdjustRecurrenceOutlookPattern( item.Start, item.End );
            }

            // Add attendees
            if (!string.IsNullOrEmpty(item.OptionalAttendees))
            {
                if (item.OptionalAttendees.Contains(";"))
                {
                    var attendees = item.OptionalAttendees.Split(';');
                    foreach (var attendee in attendees)
                    {
                        ContactItem contact = ContactItem.GetContactItem(attendee);
                        Attendees.Add(contact != null
                            ? new Attendee(contact.Name, contact.Email, false)
                            : new Attendee(attendee, false));
                    }
                }
                else
                {
                    ContactItem contact = ContactItem.GetContactItem(item.OptionalAttendees);
                    Attendees.Add(contact != null
                        ? new Attendee(contact.Name, contact.Email, true)
                        : new Attendee(item.OptionalAttendees, true));
                }
            }

            // Grab the required attendees.
            if (!string.IsNullOrEmpty(item.RequiredAttendees))
            {
                if (item.RequiredAttendees.Contains(";"))
                {
                    var attendees = item.RequiredAttendees.Split(';');
                    foreach (var attendee in attendees)
                    {
                        ContactItem contact = ContactItem.GetContactItem(attendee);
                        Attendees.Add(contact != null
                            ? new Attendee(contact.Name, contact.Email, true)
                            : new Attendee(attendee, true));
                    }
                }
                else
                {
                    ContactItem contact = ContactItem.GetContactItem(item.RequiredAttendees);
                    Attendees.Add(contact != null
                        ? new Attendee(contact.Name, contact.Email, true)
                        : new Attendee(item.RequiredAttendees, true));
                }
            }

            CalendarItemIdentifier.EventHash = EventHasher.GetHash(this);
        }
        /// <summary>
        /// Fills this CalendarItem with the data from a Google Event object
        /// </summary>
        /// <param name="ev">The Google Event to use</param>
        public void LoadFromGoogleEvent(Event ev)
        {
            m_source = "Google";
            Start    = ev.Start.DateTimeRaw ?? ev.Start.Date;
            End      = ev.End.DateTimeRaw ?? ev.End.Date;
            Location = ev.Location;
            Body     = ev.Description;
            Subject  = ev.Summary;

            // Ensure time zone is properly setup.
            StartTimeZone       = ev.Start.TimeZone ?? TimeZoneConverter.WindowsToIana(TimeZoneInfo.Local.Id);
            EndTimeZone         = ev.End.TimeZone ?? TimeZoneConverter.WindowsToIana(TimeZoneInfo.Local.Id);
            StartTimeInTimeZone = Start;
            EndTimeInTimeZone   = End;

            var id = Archiver.Instance.FindIdentifier(ev.Id);

            if (id == null)
            {
                CalendarItemIdentifier.GoogleId = ev.Id;
            }
            else
            {
                CalendarItemIdentifier = id;
            }

            if (string.IsNullOrEmpty(CalendarItemIdentifier.GoogleICalUId))
            {
                CalendarItemIdentifier.GoogleICalUId = ev.ICalUID;
            }

            IsAllDayEvent = (ev.Start.DateTimeRaw == null && ev.End.DateTimeRaw == null);

            if (ev.Reminders.Overrides != null)
            {
                EventReminder reminder = ev.Reminders.Overrides.FirstOrDefault(x => x.Method == "popup");

                ReminderTime = reminder?.Minutes ?? DEFAULT_REMINDER_TIME;
            }
            else
            {
                m_isUsingDefaultReminders = true;
                ReminderTime = DEFAULT_REMINDER_TIME;
            }

            if (ev.Recurrence != null)
            {
                Recurrence = new Recurrence(ev.Recurrence[0], this);
            }

            if (ev.Attendees != null)
            {
                foreach (var eventAttendee in ev.Attendees)
                {
                    if (string.IsNullOrEmpty(eventAttendee.DisplayName) || string.IsNullOrEmpty(eventAttendee.Email))
                    {
                        continue;
                    }

                    Attendees.Add(new Attendee
                    {
                        Name     = eventAttendee.DisplayName ?? "",
                        Email    = eventAttendee.Email ?? "",
                        Required = !(eventAttendee.Optional ?? true)
                    });
                }
            }

            CalendarItemIdentifier.EventHash = EventHasher.GetHash(this);
        }