public GetEventsTests() { this.Database = new MockSponsorServiceDatabase(); IConfiguration config = Mock.Create <IConfiguration>(); this.Controller = new GetEvents(config, this.Database); }
public async Task <PagedResponse <EventData> > GetEvents([FromQuery] PagedRequest request) { var query = new GetEvents(request.PageSize, request.PageNumber); var response = await dispatcher .DispatchAsync <PagedResponse <EventData>, GetEvents>(query); return(response); }
public async Task <JObject> PostAsync(JObject jobject) { GetEvents getEvents = new GetEvents(); getEvents.readEvents(); return(await Task.FromResult <JObject>(Core.DownloadEvents(jobject))); }
/// <summary> /// 實作All、Any、Sum、Average、Min、Max、Aggregate /// </summary> /// <returns></returns> public ActionResult Process8() { string returnValue = ""; GetEvents getEvents = new GetEvents(); CalendarEvent[] events = getEvents.CalenderEvent; DateTimeOffset newEventStart = new DateTimeOffset(2009, 7, 20, 19, 45, 00, TimeSpan.Zero); TimeSpan newEventDuration = TimeSpan.FromHours(5); bool overlaps = events.Any( ev => TimesOverlap(ev.StartTime, ev.Duration, newEventStart, newEventDuration)); bool noOverlaps = events.All( ev => TimesOverlap(ev.StartTime, ev.Duration, newEventStart, newEventDuration)); //總數、平均、最大、最小 events.Sum(ev => ev.Duration.TotalHours); events.Average(ev => ev.Duration.TotalHours); events.Max(ev => ev.Duration.TotalHours); events.Min(ev => ev.Duration.TotalHours); //計算集合裡的數量 int count = events.Aggregate(0, (c, ev) => c + 1); //利用Aggregate計算加總數 double hours = events.Aggregate(0.0, (total, ev) => total + ev.Duration.TotalHours); //利用Aggregate計算平均值 double averageHours = events.Aggregate( new { TotalHours = 0.0, Count = 0 }, (agg, ev) => new { TotalHours = agg.TotalHours + ev.Duration.TotalHours, Count = agg.Count + 1 }, (agg) => agg.TotalHours / agg.Count); // return Content(overlaps.ToString() + "<br>" + noOverlaps.ToString() + "<br>" + count.ToString()); }
/// <summary> /// 作序號 /// </summary> /// <returns></returns> public ActionResult Process7() { string returnValue = ""; GetEvents getEvents = new GetEvents(); CalendarEvent[] events = getEvents.CalenderEvent; var numberedEvents = events.Select((ev, i) => string.Format("{0}: {1}", i + 1, ev.Title)); // foreach (string item in numberedEvents) { if (returnValue != "") { returnValue += "<br>"; } returnValue += item; } return Content(returnValue); }
/// <summary> /// 同時取兩個來源 /// </summary> /// <returns></returns> public ActionResult Process5() { string returnValue = ""; GetEvents getEvents = new GetEvents(); CalendarEvent[] events = getEvents.CalenderEvent; // var eventsByDay = from ev in events group ev by ev.StartTime.Date; // var items = from day in eventsByDay from item in day select item; foreach (CalendarEvent item in items) { if (returnValue != "") { returnValue += "<br>"; } returnValue += item.Title; } // returnValue += "<br>itrms2"; List<CalendarEvent> items2 = new List<CalendarEvent>(); foreach (IGrouping<DateTime, CalendarEvent> day in eventsByDay) { foreach (CalendarEvent item in day) { items2.Add(item); } } foreach (CalendarEvent item in items2) { if (returnValue != "") { returnValue += "<br>"; } returnValue += item.Title; } return Content(returnValue); }
/// <summary> /// LINQ的Order及Group /// </summary> /// <returns></returns> public ActionResult Process4() { string returnValue = ""; GetEvents getEvents = new GetEvents(); CalendarEvent[] events = getEvents.CalenderEvent; // var eventsByStartTime = from ev in events orderby ev.StartTime ascending select ev; // var eventsByStartTime2 = events.OrderBy(ev => ev.StartTime); // var eventsByDay = from ev in events group ev by ev.StartTime.Date; // var eventsByDay2 = from ev in events group ev by ev.StartTime.Date into dayGroup select dayGroup.ToArray(); // foreach (var day in eventsByDay) { returnValue += "<br>Events for " + day.Key; foreach (var item in day) { returnValue += "<br>" + item.Title; } } // foreach (var day in eventsByDay2) { returnValue += "<br>Events for " + day[0].StartTime.Date; for (int i = 0; i < day.Length; i++) { returnValue += "<br>" + day[i].Title; } } return Content(returnValue); }
public Task <PageModel <EventModel> > Handle(GetEvents query, CancellationToken cancellationToken) { return(Repository.GetPaged(query, cancellationToken)); }
public List<VEVENT> Get(GetEvents request) { try { return request.Page != null && request.Size != null ? eventRepository.Get((request.Page.Value - 1)*request.Size.Value, request.Size.Value).ToList() : eventRepository.Get().ToList(); } catch (InvalidOperationException ex) { logger.Error(ex.ToString()); throw; } catch (ApplicationException ex) { logger.Error(ex.ToString()); throw; } catch (Exception ex) { logger.Error(ex.ToString()); throw; } }
public async Task <IReadOnlyCollection <IEvent> > Run(GetEvents criteria, IContext context) => (await Run(new State(criteria.Object), context)).Events;
/// <summary> /// 尋找陣列裡的元素 /// </summary> /// <returns></returns> public ActionResult Process3() { string returnValue = ""; GetEvents getEvents = new GetEvents(); CalenderEvent[] events = getEvents.CalenderEvent; DateTime dateOfInterest = new DateTime(2009, 7, 12); //Finding elements 第一種方法 foreach (CalenderEvent item in events) { if (item.StartTime.Date == dateOfInterest) { returnValue += item.Title + ":" + item.StartTime; } } //Finding elements 第二種方法 CalenderEvent[] itemOnDateOfInterest = Array.FindAll(events, e => e.StartTime.Date == dateOfInterest); returnValue += "<br>"; foreach (CalenderEvent item in itemOnDateOfInterest) { returnValue += item.Title + ":" + item.StartTime; } return Content(returnValue); //另外有Find、FindLast、FindIndex、FindLastIndex }
// // GET: /Chapter7/ /// <summary> /// 建立以Class為基礎的Array /// </summary> /// <returns></returns> public ActionResult Process1() { GetEvents getEvents = new GetEvents(); CalenderEvent[] events = getEvents.CalenderEvent; // string title = events[2].Title; events[2] = events[0]; return Content(title + "_" + events[2].Title); }
public async Task <ActionResult <PageModel <EventModel> > > Get([FromRoute] GetEvents query, CancellationToken cancellationToken) { return(Ok(await Query.Execute <GetEvents, PageModel <EventModel> >(query, cancellationToken))); }
public async Task <PagedResponse <EventData> > HandleAsync(GetEvents query) { return(await eventDataSearcher.GetEventData(query.PageSize, query.PageNumber)); }
/// <summary> /// 實作Join /// </summary> /// <returns></returns> public ActionResult Process9() { string returnValue = ""; GetEvents getEvents = new GetEvents(); CalendarEvent[] events = getEvents.CalenderEvent; Phone[] phoneEvents = { new Phone(){ Name = "", Time = new DateTimeOffset(2009, 7, 11, 15, 00, 00, TimeSpan.Zero)} }; // var pairs = from localEvent in events join phoneEvent in phoneEvents on new { Title = localEvent.Title, Start = localEvent.StartTime } equals new { Title = phoneEvent.Name, Start = phoneEvent.Time } select new { Local = localEvent, phone = phoneEvent }; // return View(); }
/// <summary> /// 轉型 /// </summary> /// <returns></returns> public ActionResult ProcessA() { string returnValue = ""; GetEvents getEvents = new GetEvents(); CalendarEvent[] events = getEvents.CalenderEvent; // var eventsByDay = from ev in events group ev by ev.StartTime.Date into dayGroup select dayGroup.ToArray(); // ArrayList fruits = new ArrayList(); fruits.Add("mango"); fruits.Add("apple"); fruits.Add("lemon"); IEnumerable<string> query = fruits.Cast<string>().Select(fruit => fruit); foreach (string fruit in query) { if (fruit != "") { returnValue += "<br>"; } returnValue += fruit; } // return Content(returnValue); }
/// <summary> /// 陣列排序 /// </summary> /// <returns></returns> public ActionResult Process4() { string returnValue = ""; GetEvents getEvents = new GetEvents(); GetEvents2 getEvents2 = new GetEvents2(); CalenderEvent[] events = getEvents.CalenderEvent; CalenderEvent2[] events2 = getEvents2.CalenderEvent2; // Array.Sort(events, (event1, event2) => event1.StartTime.CompareTo(event2.StartTime)); //自訂排序 Array.Sort(events2); // return Content(""); }