public void AddTalk(Talk talk) { if (!CanAdd(talk)) { throw new NoSlotAvailableException(); } durationInMinute -= talk.Duration; talk.StarTime = GetStarTime(); Talks.Add(talk); }
/// <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); }
/// <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) }); } }
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); }
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); } }
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}"); } }
public void AddTalk(Talk talk) { Talks.Add(talk); }