Ejemplo n.º 1
0
 public void AddTalk(Talk talk)
 {
     if (!CanAdd(talk))
     {
         throw new  NoSlotAvailableException();
     }
     durationInMinute -= talk.Duration;
     talk.StarTime     = GetStarTime();
     Talks.Add(talk);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Adds the talk to this session.
 /// </summary>
 /// <param name="talk">The talk.</param>
 /// <exception cref="Shared.TrackManagementException">Unable to add talk to session.</exception>
 private void AddTalk(ITalk talk)
 {
     if (RemainingDuration <= 0 && BufferDuration <= 0)
     {
         throw new TrackManagementException(Resource.UnableToAddTalk);
     }
     SetTalkStartTime(talk);
     UpdateRemainingDuration(talk);
     Talks.Add(talk);
     UpdateNextSessionStartTime(talk.Duration);
 }
 public bool TryAddTalk(SessionTalk talk)
 {
     if (RemainingTime >= talk.Duration)
     {
         talk.Schedule(CurrentSlotPointer);
         FillSlot(talk.Duration);
         Talks.Add(talk);
         return(true);
     }
     return(false);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Adds a talk object to the list of Talks at the end.
        /// </summary>
        /// <param name="talk">The Talk object to be added at the end of Talks list.</param>
        /// <returns>boolean value indicating sucecss or failure.</returns>
        /// <exceptions>throws an CanNotAddTalkException if talk can't fit into the session.</exceptions>
        public bool AddTalk(Talk talk)
        {
            var canAddTalk = RemainingUnallocatedTime() >= talk.Duration;

            if (canAddTalk)
            {
                Talks.Add(talk);
            }
            else
            {
                throw new CanNotAddTalkException("Can not add Talk, due to unavailable time.");
            }

            return(canAddTalk);
        }
        private void LoadTalks()
        {
            if (Talks.Any())
            {
                return;
            }

            for (int i = 1; i <= 20; i++)
            {
                Talks.Add(new Talk
                {
                    Title   = $"Talk title {i}",
                    Speaker = $"Speaker {i}",
                    Date    = DateTime.Now.AddDays(i)
                });
            }
        }
Ejemplo n.º 6
0
        public void AddTalkInSpecificTime(DateTime startTimeMin, DateTime startTimeMax, Talk talk)
        {
            if (!Talks.Any())
            {
                talk.StarTime = startTimeMin;
                Talks.Add(talk);
                return;
            }
            var lastTalk = Talks.OrderByDescending(x => x.StarTime).First();

            if (lastTalk.StarTime.Value.AddMinutes(lastTalk.Duration) <= startTimeMin)
            {
                talk.StarTime = startTimeMin;
                Talks.Add(talk);
                return;
            }
            talk.StarTime = lastTalk.StarTime.Value.AddMinutes(lastTalk.Duration) < startTimeMax?lastTalk.StarTime.Value.AddMinutes(lastTalk.Duration) : startTimeMax;

            Talks.Add(talk);
        }
Ejemplo n.º 7
0
        private async Task GetTalks()
        {
            var result = new ObservableCollection <Talk>();

            List <JSONTalk> jsonTalks = await GetJSONTalksFromWeb();

            foreach (var data in jsonTalks)
            {
                if (!data.enabled)
                {
                    continue;
                }
                DateTime from = Convert.ToDateTime(data.startTime).ToUniversalTime();
                DateTime to   = Convert.ToDateTime(data.endTime).ToUniversalTime();
                if (data.description == null || data.description.Length <= 0)
                {
                    data.description = new [] { "TBA" };
                }
                result.Add(new Talk()
                {
                    Id          = data.id,
                    EventName   = data.title,
                    From        = new DateTime(2019, 11, 26, from.Hour, from.Minute, from.Second),
                    To          = new DateTime(2019, 11, 26, to.Hour, to.Minute, to.Second),
                    Color       = data.color,
                    SubTitle    = data.subTitle,
                    Description = String.Join(Environment.NewLine, data.description)
                });
            }

            Talks.Clear();
            foreach (var talk in result)
            {
                Talks.Add(talk);
            }
        }
Ejemplo n.º 8
0
            internal override Event ReadEntry(BinaryReaderEx br)
            {
                EventType type = br.GetEnum32 <EventType>(br.Position + 0xC);

                switch (type)
                {
                case EventType.Treasure:
                    var treasure = new Event.Treasure(br);
                    Treasures.Add(treasure);
                    return(treasure);

                case EventType.Generator:
                    var generator = new Event.Generator(br);
                    Generators.Add(generator);
                    return(generator);

                case EventType.ObjAct:
                    var objAct = new Event.ObjAct(br);
                    ObjActs.Add(objAct);
                    return(objAct);

                case EventType.MapOffset:
                    var mapOffset = new Event.MapOffset(br);
                    MapOffsets.Add(mapOffset);
                    return(mapOffset);

                case EventType.WalkRoute:
                    var walkRoute = new Event.WalkRoute(br);
                    WalkRoutes.Add(walkRoute);
                    return(walkRoute);

                case EventType.GroupTour:
                    var groupTour = new Event.GroupTour(br);
                    GroupTours.Add(groupTour);
                    return(groupTour);

                case EventType.Event17:
                    var event17 = new Event.Event17(br);
                    Event17s.Add(event17);
                    return(event17);

                case EventType.Event18:
                    var event18 = new Event.Event18(br);
                    Event18s.Add(event18);
                    return(event18);

                case EventType.Event20:
                    var event20 = new Event.Event20(br);
                    Event20s.Add(event20);
                    return(event20);

                case EventType.Event21:
                    var event21 = new Event.Event21(br);
                    Event21s.Add(event21);
                    return(event21);

                case EventType.PartsGroup:
                    var partsGroup = new Event.PartsGroup(br);
                    PartsGroups.Add(partsGroup);
                    return(partsGroup);

                case EventType.Talk:
                    var talk = new Event.Talk(br);
                    Talks.Add(talk);
                    return(talk);

                case EventType.AutoDrawGroup:
                    var autoDrawGroup = new Event.AutoDrawGroup(br);
                    AutoDrawGroups.Add(autoDrawGroup);
                    return(autoDrawGroup);

                case EventType.Other:
                    var other = new Event.Other(br);
                    Others.Add(other);
                    return(other);

                default:
                    throw new NotImplementedException($"Unimplemented model type: {type}");
                }
            }
Ejemplo n.º 9
0
 public void AddTalk(Talk talk)
 {
     Talks.Add(talk);
 }