/// <summary> /// Gets the leaderboard of a segment. You can use various filters to filter the data. /// Some of the filters require a Strava Premium account! /// </summary> /// <param name="segmentId">The Strava segment Id.</param> /// <param name="weight">The weight class used to filter the leaderboard.</param> /// <param name="age">The age group used to filter the leaderboard.</param> /// <param name="time">The time used to filter the leaderboard.</param> /// <param name="gender">The gender used to filter the leaderboard.</param> /// <returns>The leaderboard filtered by gender.</returns> public async Task<Leaderboard> GetSegmentLeaderboardAsync(String segmentId, WeightFilter weight, AgeFilter age, TimeFilter time, GenderFilter gender) { int page = 1; //Create one dummy request to get the number of entries. Leaderboard request = await GetSegmentLeaderboardAsync(segmentId, weight, age, time, gender, 1, 1); int totalAthletes = request.EntryCount; Leaderboard leaderboard = new Leaderboard { EffortCount = request.EffortCount, EntryCount = request.EntryCount }; while ((page - 1) * 200 < totalAthletes) { Leaderboard l = await GetSegmentLeaderboardAsync(segmentId, weight, age, time, gender, page++, 200); foreach (LeaderboardEntry entry in l.Entries) { leaderboard.Entries.Add(entry); } } return leaderboard; }
public RecipeQuery(RecipeQuery query) { this.Keywords = query.Keywords; this.Rating = query.Rating; if (query.Include != null) this.Include = (Guid[]) query.Include.Clone(); if (query.Exclude != null) this.Exclude = (Guid[]) query.Exclude.Clone(); this.Time = query.Time; this.Photos = query.Photos; this.Sort = query.Sort; this.Direction = query.Direction; }
/// <summary> /// Converts the time filter to the appropriate string. /// </summary> /// <param name="filter">The filter.</param> /// <returns>The appropriate string for the specified filter.</returns> public static String TimeFilterToString(TimeFilter filter) { switch (filter) { case TimeFilter.ThisMonth: return "this_month"; case TimeFilter.ThisWeek: return "this_week"; case TimeFilter.ThisYear: return "this_year"; case TimeFilter.Today: return "today"; default: return String.Empty; } }
public void TestClone([ValueSource(nameof(Ranges))] SpecialDateTimeInterval range, [ValueSource(nameof(Modes))] TimeFilterMode mode, [ValueSource(nameof(DateTimes))] DateTime?start, [ValueSource(nameof(DateTimes))] DateTime?end) { var filter = new TimeFilter { Mode = mode, SpecialInterval = range, Minimum = start, Maximum = end }; var clone = filter.Clone(); clone.SpecialInterval.Should().Be(range); clone.Minimum.Should().Be(start); clone.Maximum.Should().Be(end); }
public void GetSellerTransactions() { GetSellerTransactionsCall gst = new GetSellerTransactionsCall(this.apiContext); // Time filter System.DateTime calTo = System.DateTime.Now; System.DateTime calFrom = calTo.AddHours(-1); TimeFilter tf = new TimeFilter(calFrom, calTo); gst.ModTimeFilter = tf; // Pagination PaginationType pt = new PaginationType(); pt.EntriesPerPage = 100; pt.EntriesPerPageSpecified = true; pt.PageNumber = 1; pt.PageNumberSpecified = true; gst.Pagination = pt; gst.Execute(); TestData.SellerTransactions = gst.ApiResponse.TransactionArray; }
public IHttpActionResult FreeActive(TimeFilter filter) { List <DriversType> list = new List <DriversType>(); if (filter == null || filter.from == null || filter.id == 0) { return(BadRequest()); } var date = db.Database .SqlQuery <FreeActive>("DECLARE @FirstDate AS datetime " + " DECLARE @SecondDate AS datetime " + " DECLARE @AllDate AS int " + " SET @FirstDate = (select top(1) PickedupTime from FactBill where [DriverKey] = @id and OpenTime >= @day and OpenTime <= @day2 and PickedupTime != '0001-01-01 00:00:00.0000000'order by[FactBill].BillKey)" + "SET @SecondDate = (select top(1) CloseTime from FactBill where [DriverKey] =@id and OpenTime>= @day and OpenTime<= @day2 and PickedupTime != '0001-01-01 00:00:00.0000000' order by[FactBill].BillKey DESC )" + "SET @AllDate = (select sum(DATEDIFF(MINUTE, PickedupTime, CloseTime)) from (select distinct FactBill.BillKey, PickedupTime, CloseTime from FactBill where [DriverKey] =@id and OpenTime>= @day and OpenTime<= @day2 and PickedupTime != '0001-01-01 00:00:00.0000000') as p)" + "select @AllDate as Active,DATEDIFF(MINUTE, @FirstDate, @SecondDate) - @AllDate as Free ,DATEDIFF(MINUTE, @FirstDate, @SecondDate) as 'All' " , new SqlParameter("@id", filter.id), new SqlParameter("@day", filter.from), new SqlParameter("@day2", filter.from.AddDays(1))).FirstOrDefault(); return(Ok(date)); }
// GET: api/DimDrivers public IHttpActionResult GetDrivers(TimeFilter filter) { if (filter.from == null || filter.to == null) { return(BadRequest()); } List <DriversCharts> list = new List <DriversCharts>(); if (filter.id == 0) { var drivers = db.Database .SqlQuery <DimDriver>("select * from [beeorderWH].[dbo].[DimDriver]") .ToList(); var date = db.Database .SqlQuery <TimesDriver>("select distinct [BillKey],[OpenTime],[DispatchTime],[CloseTime], [ConfirmationTime],[PickedupTime],[DeliveredTime],[DriverKey]" + " from [beeorderWH].[dbo].[FactBill] where OpenTime >= @day and OpenTime <= @day2 and PickedupTime !='0001-01-01 00:00:00.0000000'" , new SqlParameter("@day", filter.from), new SqlParameter("@day2", filter.to)).ToList(); foreach (var item in drivers) { list.Add(new DriversCharts(item.Name, item.DriverKey, date.Where(m => m.DriverKey == item.DriverKey) .ToList())); } } else { var item = db.DimDrivers.Select(m => new { DriverKey = m.DriverKey, Name = m.Name }).FirstOrDefault(m => m.DriverKey == filter.id); if (item == null) { return(NotFound()); } var date = db.Database .SqlQuery <TimesDriver>("select distinct [BillKey],[OpenTime],[DispatchTime],[CloseTime], [ConfirmationTime],[PickedupTime],[DeliveredTime],[DriverKey]" + " from [beeorderWH].[dbo].[FactBill] where DriverKey=@id and OpenTime >= @day and OpenTime <= @day2 and PickedupTime !='0001-01-01 00:00:00.0000000'" , new SqlParameter("@id", item.DriverKey), new SqlParameter("@day", filter.from), new SqlParameter("@day2", filter.to)).ToList(); list.Add(new DriversCharts(item.Name, item.DriverKey, date.Where(m => m.DriverKey == item.DriverKey) .ToList())); } return(Ok(list.Where(m => m.Times.Count() > 0))); }
/// <summary> /// Converts the time filter to the appropriate string. /// </summary> /// <param name="filter">The filter.</param> /// <returns>The appropriate string for the specified filter.</returns> public static String TimeFilterToString(TimeFilter filter) { switch (filter) { case TimeFilter.ThisMonth: return("this_month"); case TimeFilter.ThisWeek: return("this_week"); case TimeFilter.ThisYear: return("this_year"); case TimeFilter.Today: return("today"); default: return(String.Empty); } }
public List <DHT> GetValuesByDate(TimeFilter timeFilter) { string sortOrder = timeFilter.SortOrder.ToUpper(); List <DHT> results = new List <DHT>(); if (sortOrder == "DESC") { results = _context.DHTs.Where(i => i.MeasureTime.Date >= timeFilter.DateBefore.Date && i.MeasureTime.Date <= timeFilter.DateAfter) .OrderByDescending(p => p.MeasureTime) .ToList(); } else { results = _context.DHTs.Where(i => i.MeasureTime.Date >= timeFilter.DateBefore.Date && i.MeasureTime.Date <= timeFilter.DateAfter) .OrderBy(p => p.MeasureTime) .ToList(); } return(results); }
/// <summary> /// TimeFilter to string /// </summary> /// <param name="filter"></param> /// <returns></returns> public static string TimeFilterToString(TimeFilter filter) { String fltr = String.Empty; switch (filter) { case TimeFilter.ThisMonth: fltr = "this_month"; break; case TimeFilter.ThisWeek: fltr = "this_week"; break; case TimeFilter.ThisYear: fltr = "this_year"; break; case TimeFilter.Today: fltr = "today"; break; } return fltr; }
public IHttpActionResult AreaOrderH(TimeFilter filter) { if (filter.from == null || filter.to == null) { return(BadRequest()); } List <OrderRate> list = new List <OrderRate>(); if (filter.id == 0) { var date = db.Database .SqlQuery <OrderRate>(" select top(10) count(distinct[BillKey]) as count , [DimUser].AreaEngName as Name " + " from[FactBill] inner hash join[DimUser] on[DimUser].UserAltKey = [FactBill].UserKey " + " where[FactBill].[OpenTime] >= @day and[FactBill].[OpenTime] <= @day2 " + " group by[DimUser].AreaEngName " + "order by count desc" , new SqlParameter("@day", filter.from), new SqlParameter("@day2", filter.to)).ToList(); return(Ok(date)); } return(BadRequest()); }
private void BtnGetSellerTransactions_Click(object sender, System.EventArgs e) { try { LstTransactions.Items.Clear(); GetSellerTransactionsCall apicall = new GetSellerTransactionsCall(Context); TimeFilter timefilter = new TimeFilter(); if (GMT.Checked.Equals(true)) { timefilter.TimeFromUTC = DatePickModFrom.Value; timefilter.TimeToUTC = DatePickModTo.Value; } else { timefilter.TimeFrom = DatePickModFrom.Value; timefilter.TimeTo = DatePickModTo.Value; } TransactionTypeCollection transactions = apicall.GetSellerTransactions(timefilter); // TransactionTypeCollection transactions = apicall.GetSellerTransactions(DatePickModFrom.Value, DatePickModTo.Value); foreach (TransactionType trans in transactions) { string[] listparams = new string[6]; listparams[0] = trans.Item.ItemID; listparams[1] = trans.TransactionID; listparams[2] = trans.TransactionPrice.Value.ToString(); listparams[3] = trans.AmountPaid.Value.ToString(); listparams[4] = trans.QuantityPurchased.ToString(); listparams[5] = trans.Buyer.UserID; ListViewItem vi = new ListViewItem(listparams); LstTransactions.Items.Add(vi); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private bool SearchByTime(TimeFilter searchFilter, out List <CriminalEvent> criminalEvents, out string result) { result = string.Empty; criminalEvents = null; try { if (searchFilter == null) { result = "Search Filter Is Null"; return(false); } List <object> parameters = new List <object>(); if (searchFilter.FromTo) { parameters.Add(searchFilter.TimeFrom); parameters.Add(searchFilter.TimeTo); } else { parameters.Add(searchFilter.Time); } if (!Retrieve(QueryType.ByTime, parameters, out criminalEvents, out result)) { return(false); } return(true); } catch (Exception e) { result = e.Message; return(false); } }
private void GetTrendedAttributes_GetSamples() { /* SNIPPET 1: START */ Guid trendedObjectId = client.GetObjectIdentifier("WIN-21DJ9JV9QH6:EECMI-NCE25-2/FCB.10FEC11 - V6 Unit.E4 Network Outdoor Temperature"); // Get attributes where trend extension is configured List <MetasysAttribute> trendedAttributes = client.Trends.GetTrendedAttributes(trendedObjectId); int attributeId = trendedAttributes[0].Id; TimeFilter timeFilter = new TimeFilter { StartTime = new DateTime(2020, 6, 5), EndTime = new DateTime(2020, 6, 6) }; PagedResult <Sample> samplesPager = client.Trends.GetSamples(trendedObjectId, attributeId, timeFilter); // Prints the number of records fetched and paging information Console.WriteLine("Total:" + samplesPager.Total); Console.WriteLine("Current page:" + samplesPager.CurrentPage); Console.WriteLine("Page size:" + samplesPager.PageSize); Console.WriteLine("Pages:" + samplesPager.PageCount); /* * Total:145 * Current page:1 * Page size:100 * Pages:2 */ Sample firstSample = samplesPager.Items.FirstOrDefault(); Console.WriteLine(firstSample); /* * { * "Value": 82.0, * "Unit": "deg F", * "Timestamp": "2020-05-12T05:00:00Z", * "IsReliable": true * } */ /* SNIPPET 1: END */ }
// http://developer.ebay.com/devzone/xml/docs/Reference/eBay/GetOrders.html public OrderTypeCollection GetOrders(OrderStatusCodeType type, DateTime from, DateTime to) { var call = new GetOrdersCall(api); call.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); var timeFilter = new TimeFilter { TimeFrom = from, TimeTo = to }; var result = new OrderTypeCollection(); bool hasMoreEntries = true; int count = 1; while (hasMoreEntries) { call.Pagination = new PaginationType { PageNumber = count, EntriesPerPage = 200 }; OrderTypeCollection orders = call.GetOrders(timeFilter, TradingRoleCodeType.Seller, type); result.AddRange(orders); hasMoreEntries = call.HasMoreOrders; if (count++ > 10) { break; } } responseXML = call.SoapResponse; return(result); }
public EbayServiceResponse <IEnumerable <MemberMessage> > GetMemberMessage(string token, DateTime from, DateTime to, MessageTypeCodeType messageTypeCodeType, MessageStatusTypeCodeType messageStatusTypeCode) { var apiContext = CreateApiContext(apiServerUrl, ruName, appId, devId, certId, token); var response = new EbayServiceResponse <IEnumerable <MemberMessage> >(); try { var apiCall = new GetMemberMessagesCall(apiContext); var timeFilter = new TimeFilter(from, to); var messages = apiCall.GetMemberMessages(timeFilter, messageTypeCodeType, messageStatusTypeCode); var result = new List <MemberMessage>(); foreach (MemberMessageExchangeType message in messages) { var memberMessage = new MemberMessage { ParentMessageId = message.Question.ParentMessageID, MessageId = message.Question.MessageID, MessageStatus = message.MessageStatus.ToString(), ItemId = message.Item != null ? message.Item.ItemID : string.Empty, QuestionType = message.Question.QuestionType.ToString(), SenderId = message.Question.SenderID, SenderEmail = message.Question.SenderEmail, RecipientId = message.Question.RecipientID[0], Body = message.Question.Body, CreatedDate = message.CreationDate, LastModifiedDate = message.LastModifiedDate }; result.Add(memberMessage); } response.Result = result; } catch (Exception ex) { response.Error = ex.Message; } return(response); }
public void On_time_less_or_equal() { PluginBase plugin = new Plugin(); var now = DateTime.Now; ((Plugin)plugin) .Clear() .Add(new LogRow() { Level = Guid.NewGuid().ToString(), Logger = Guid.NewGuid().ToString(), Time = now.AddMinutes(10) }, new LogRow() { Level = Guid.NewGuid().ToString(), Logger = "group", Time = now.AddMinutes(60) }, new LogRow() { Level = "debug", Logger = Guid.NewGuid().ToString(), Time = now.AddMinutes(60) }).Commit(); IFilterExpression filter1 = new TimeFilter() { Operator = "<=", Operand = "10" }; var days = plugin.GetDays(); Assert.Single(days); var logs = plugin.GetLogs(days.ElementAt(0)); logs = filter1.Filter(logs).ToList(); Assert.Single(logs); }
public void TestStoreRestore([ValueSource(nameof(Modes))] TimeFilterMode mode, [ValueSource(nameof(Ranges))] SpecialDateTimeInterval range, [ValueSource(nameof(DateTimes))] DateTime?start, [ValueSource(nameof(DateTimes))] DateTime?end) { using (var stream = new MemoryStream()) { using (var writer = XmlWriter.Create(stream)) { writer.WriteStartElement("Test"); var settings = new TimeFilter { Mode = mode, SpecialInterval = range, Minimum = start, Maximum = end }; settings.Save(writer); writer.WriteEndElement(); } stream.Position = 0; //Console.WriteLine(Encoding.UTF8.GetString(stream.ToArray())); using (var reader = XmlReader.Create(stream)) { reader.MoveToContent(); var settings = new TimeFilter(); settings.Restore(reader); settings.Mode.Should().Be(mode); settings.SpecialInterval.Should().Be(range); settings.Minimum.Should().Be(start); settings.Maximum.Should().Be(end); } } }
/// <summary> /// Gets the leaderboard filtered by time. /// </summary> /// <param name="segmentId">The Strava segment id.</param> /// <param name="filter">The time filter.</param> /// <param name="page">The result page.</param> /// <param name="perPage">Entries per page.</param> /// <returns>A time filtered leaderboard.</returns> public async Task <Leaderboard> GetSegmentLeaderboardAsync(String segmentId, TimeFilter filter, int page, int perPage) { String fltr = String.Empty; // ‘this_year’, ‘this_month’, ‘this_week’, ‘today’ switch (filter) { case TimeFilter.ThisMonth: fltr = "this_month"; break; case TimeFilter.ThisWeek: fltr = "this_week"; break; case TimeFilter.ThisYear: fltr = "this_year"; break; case TimeFilter.Today: fltr = "today"; break; } String getUrl = String.Format("{0}/{1}/leaderboard?date_range={2}&page={3}&per_page={4}&access_token={5}", Endpoints.Leaderboard, segmentId, fltr, page, perPage, Authentication.AccessToken ); String json = await WebRequest.SendGetAsync(new Uri(getUrl)); return(Unmarshaller <Leaderboard> .Unmarshal(json)); }
public IHttpActionResult DriverType(TimeFilter filter) { List <DriversType> list = new List <DriversType>(); if (filter == null || filter.from == null || filter.from == null) { return(BadRequest()); } var date = db.Database .SqlQuery <DriversType>("select count(distinct[BillKey]) as 'Size' , [DimDriver].VehicleType as 'Type' " + " from [FactBill] inner hash join [DimDriver] on [DimDriver].DriverKey = [FactBill].DriverKey " + " where [FactBill].[OpenTime] >= @day and [FactBill].[OpenTime] <= @day2 " + " group by [DimDriver].VehicleType" , new SqlParameter("@day", filter.from), new SqlParameter("@day2", filter.to)) .ToList(); return(Ok(date)); //list.Add(new DriversType() //{ // Size = db.DimDrivers.GroupBy(m => m.VehicleType).Count(), //}); //var test = db.DimDrivers.GroupBy(m => m.VehicleType).Select(x => new { name = x.FirstOrDefault().VehicleType, y = x.Count() }); //return Ok(test); }
public void GetItemTransactions() { Assert.IsNotNull(TestData.NewItem, "Failed because no item available -- requires successful AddItem test"); GetItemTransactionsCall api = new GetItemTransactionsCall(this.apiContext); api.ItemID = TestData.NewItem.ItemID; // Time filter System.DateTime calTo = DateTime.Now; System.DateTime calFrom = calTo.AddHours(-1); TimeFilter tf = new TimeFilter(calFrom, calTo); api.ModTimeFrom = calFrom; api.ModTimeTo = calTo; // Pagination PaginationType pt = new PaginationType(); pt.EntriesPerPage = 100; pt.EntriesPerPageSpecified = true; pt.PageNumber = 1; pt.PageNumberSpecified = true; api.Pagination = pt; TransactionTypeCollection trans = api.GetItemTransactions(api.ItemID, api.ModTimeFrom, api.ModTimeTo); // NO transaction should be returned. Assert.IsTrue(trans == null || trans.Count == 0); }
public void Run() { try { TimeFilter getDateTimeForTrend = new TimeFilter(); Console.WriteLine("\nIndicate the object you want to run this example code on."); Console.Write("Enter the fully qualified reference of the object (Example: \"site:device/itemReference\"): "); string object1 = Console.ReadLine(); Guid id1 = client.GetObjectIdentifier(object1); Console.WriteLine($"{object1} id: {id1}"); Guid objId = id1; var trendedAttributes = client.Trends.GetTrendedAttributes(objId); Console.WriteLine(trendedAttributes[0].Description); Console.WriteLine("Please enter Start Date and End Date separated by space: "); string getDateTime = Console.ReadLine(); string[] args; args = getDateTime.Split(' '); if (args != null) { getDateTimeForTrend = ReadUserInputForTrends(args); } var samples = client.Trends.GetSamples(objId, 85, getDateTimeForTrend).Items; foreach (var s in samples) { Console.WriteLine($"Value: {s.Value} Unit: {s.Unit} Timestamp: {s.Timestamp}"); } } catch (Exception exception) { log.Logger.Error(string.Format("An error occured while getting trend information - {0}", exception.Message)); Console.WriteLine("\n \nAn Error occurred. Press Enter to return to Main Menu"); } Console.ReadLine(); }
/// <summary> /// TimeFilter to string /// </summary> /// <param name="filter"></param> /// <returns></returns> public static string TimeFilterToString(TimeFilter filter) { String fltr = String.Empty; switch (filter) { case TimeFilter.ThisMonth: fltr = "this_month"; break; case TimeFilter.ThisWeek: fltr = "this_week"; break; case TimeFilter.ThisYear: fltr = "this_year"; break; case TimeFilter.Today: fltr = "today"; break; } return(fltr); }
/// <summary> /// Gets the leaderboard of a segment. You can use various filters to filter the data. /// Some of the filters require a Strava Premium account! /// </summary> /// <param name="segmentId">The Strava segment Id.</param> /// <param name="weight">The weight class used to filter the leaderboard.</param> /// <param name="age">The age group used to filter the leaderboard.</param> /// <param name="time">The time used to filter the leaderboard.</param> /// <param name="gender">The gender used to filter the leaderboard.</param> /// <param name="page">The result page.</param> /// <param name="perPage">Efforts shown per page.</param> /// <returns>The leaderboard filtered by gender.</returns> public async Task<Leaderboard> GetSegmentLeaderboardAsync(String segmentId, WeightFilter weight, AgeFilter age, TimeFilter time, GenderFilter gender, int page, int perPage) { bool useGender = false; bool useTime = false; bool useAge = false; bool useWeight = false; String genderFilter = String.Empty; String timeFilter = String.Empty; String ageFilter = String.Empty; String weightFilter = String.Empty; if (!String.IsNullOrEmpty(StringConverter.GenderFilterToString(gender))) { genderFilter = String.Format("gender={0}", StringConverter.GenderFilterToString(gender)); useGender = true; } if (!String.IsNullOrEmpty(StringConverter.TimeFilterToString(time))) { timeFilter = String.Format("date_range={0}", StringConverter.TimeFilterToString(time)); useTime = true; } if (!String.IsNullOrEmpty(StringConverter.AgeFilterToString(age))) { ageFilter = String.Format("age_group={0}", StringConverter.AgeFilterToString(age)); useAge = true; } if (!String.IsNullOrEmpty(StringConverter.WeightFilterToString(weight))) { weightFilter = String.Format("weight_class={0}", StringConverter.WeightFilterToString(weight)); useWeight = true; } String getUrl = String.Format("{0}/{1}/leaderboard?{2}&{3}&{4}&{5}&page={6}&per_page={7}&access_token={8}", Endpoints.Leaderboard, segmentId, useGender ? genderFilter : String.Empty, useTime ? timeFilter : String.Empty, useAge ? ageFilter : String.Empty, useWeight ? weightFilter : String.Empty, page, perPage, Authentication.AccessToken ); String json = await WebRequest.SendGetAsync(new Uri(getUrl)); return Unmarshaller<Leaderboard>.Unmarshal(json); }
// // User selected transactions and clicked "mark as shipped". // private void ToolStripMenuItemMarkAsShipped_Click(object sender, EventArgs e) { if (MessageBox.Show("你确认发货么?\r\n发货后,ebay会标记成已发货状态。", "确认发货?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { DataGridViewSelectedRowCollection selectedRows = this.dataGridViewAllOrders.SelectedRows; // First check if every transaction item has a related sku. foreach (DataGridViewRow row in selectedRows) { String orderLineItemId = row.Cells[OrderDgv_OrderLineItemIndex].Value.ToString(); EbayTransactionType trans = EbayTransactionDAL.GetOneTransaction(orderLineItemId); if (trans == null) { return; } if (trans.IsPaid == false) { MessageBox.Show("有些商品没有付款,不能发货!", "失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (trans.IsShipped == true) { MessageBox.Show("有些商品已经发货,不能重新发货!", "失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (trans.ItemSKU == null || trans.ItemSKU.Trim() == "") { MessageBox.Show("有些商品没有指定SKU!", "失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } List <String> handledOrderIds = new List <String>(); foreach (DataGridViewRow row in selectedRows) { String orderLineItemId = row.Cells[OrderDgv_OrderLineItemIndex].Value.ToString(); EbayTransactionType trans = EbayTransactionDAL.GetOneTransaction(orderLineItemId); if (trans == null) { return; } if (trans.IsPaid == false || trans.IsShipped == true) { MessageBox.Show("商品未付款或者已经发货!", "失败", MessageBoxButtons.OK, MessageBoxIcon.Error); continue; } String orderId = trans.OrderId; if (handledOrderIds.Contains(orderId)) { continue; } AccountType account = null; List <AccountType> allAccounts = AccountUtil.GetAllAccounts(); foreach (AccountType accountType in allAccounts) { if (accountType.ebayAccount == trans.SellerName) { account = accountType; break; } } if (account == null || account.SellerApiContext == null) { MessageBox.Show("账号没有初始化!", "失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } EbayTransactionBiz.CompleteSale(account, trans.OrderId, trans.BuyerId, trans.ItemId, trans.EbayTransactionId, false, true, true, true /*isShipped*/); handledOrderIds.Add(orderId); StringCollection orderIds = new StringCollection(); orderIds.Add(trans.OrderId); TimeFilter timeFilter = new TimeFilter(); timeFilter.TimeFrom = this.dateTimePickerStartTime.Value; timeFilter.TimeTo = this.dateTimePickerEndTime.Value; List <EbayTransactionType> transList = EbayTransactionBiz.GetAllOrders(account, timeFilter, orderIds); if (transList.Count != 1) { MessageBox.Show("交易在ebay系统中不存在!", "失败", MessageBoxButtons.OK, MessageBoxIcon.Error); continue; } if (transList[0].IsShipped == false) { MessageBox.Show(string.Format("该交易没有在ebay系统中标记成功! 用户id={0}", trans.BuyerId), "失败", MessageBoxButtons.OK, MessageBoxIcon.Error); continue; } // ZHI_TODO //ItemDAL.ShipItem(trans.ItemSKU, trans.SaleQuantity); // Update transaction shipped date. EbayTransactionDAL.UpdateTransactionShippedStatus(trans.TransactionId, true /*shipped*/, transList[0].ShippedDate); Logger.WriteSystemUserLog(string.Format("标记交易已发货成功: userId={0}, 商品名={1}", trans.BuyerId, trans.ItemTitle)); row.DefaultCellStyle.BackColor = ColorTranslator.FromHtml("#90EE90"); } MessageBox.Show("标记成发货成功!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void TimeFilterUpdated(TimeFilter timeFilter) { // set filtered min and max, based on filter value [0,1] and global min/max //currentTimeFilterMin = (long)(timeFilter.MinTime * (maxTimestamp - minTimestamp)) + minTimestamp; //currentTimeFilterMax = (long)(timeFilter.MaxTime * (maxTimestamp - minTimestamp)) + minTimestamp; }
public async Task <Leaderboard> GetSegmentLeaderboardAsync(string segmentId, int clubId, WeightFilter weight, AgeFilter age, TimeFilter time, GenderFilter gender) { int page = 1; Leaderboard request = await GetSegmentLeaderboardAsync(segmentId, clubId, weight, age, time, gender, 1, 1); int totalAthletes = request.EntryCount; Leaderboard leaderboard = new Leaderboard { EffortCount = request.EffortCount, EntryCount = request.EntryCount }; while ((page - 1) * 200 < totalAthletes) { foreach (LeaderboardEntry entry in (await GetSegmentLeaderboardAsync(segmentId, clubId, weight, age, time, gender, page++, 200)).Entries) { leaderboard.Entries.Add(entry); } } return(leaderboard); }
public SeekedList<Guid> GetPosts(List<Guid> subs = null, PostsSortBy sortby = PostsSortBy.New, TimeFilter timeFilter = TimeFilter.All, bool hideRemovedPosts = true, int? skip = null, int? take = null) { return _conn.Perform(conn => { var query = conn.From<Post>(); if (subs != null && subs.Count > 0) { query.Where(x => subs.Contains(x.SubId)); } if (timeFilter != TimeFilter.All) { TimeSpan timeSpan; switch (timeFilter) { case TimeFilter.Hour: timeSpan = TimeSpan.FromHours(1); break; case TimeFilter.Day: timeSpan = TimeSpan.FromDays(1); break; case TimeFilter.Week: timeSpan = TimeSpan.FromDays(7); break; case TimeFilter.Month: timeSpan = TimeSpan.FromDays(30); break; case TimeFilter.Year: timeSpan = TimeSpan.FromDays(365); break; default: throw new Exception("unknown time filter"); } var from = Common.CurrentTime() - timeSpan; query.Where(x => x.DateCreated >= from); } if (hideRemovedPosts) query.Where(x => x.Verdict != (int)Verdict.ModRemoved); var totalCount = conn.Count(query); query.Skip(skip).Take(take); switch (sortby) { case PostsSortBy.Hot: query.OrderByExpression = "ORDER BY (hot(vote_up_count, vote_down_count, date_created), date_created) DESC"; break; case PostsSortBy.New: query.OrderByDescending(x => x.DateCreated); break; case PostsSortBy.Rising: throw new Exception("not implemented"); case PostsSortBy.Controversial: query.OrderByExpression = "ORDER BY (controversy(vote_up_count, vote_down_count), date_created) DESC"; break; case PostsSortBy.Top: query.OrderByExpression = "ORDER BY (score(vote_up_count, vote_down_count), date_created) DESC"; break; default: throw new Exception("uknown sort"); } query.SelectExpression = "SELECT \"id\""; return new SeekedList<Guid>(conn.Select(query).Select(x => x.Id), skip ?? 0, take, totalCount); }); }
public ActionResult SearchSite(string query, PostsSearchSortBy? sort, TimeFilter? time, SearchResultType? resultType, int? pageNumber, int? pageSize) { if (sort == null) sort = PostsSearchSortBy.Relevance; if (time == null) time = TimeFilter.All; if (pageNumber == null || pageNumber < 1) pageNumber = 1; if (pageSize == null) pageSize = 25; if (pageSize > 100) pageSize = 100; if (pageSize < 1) pageSize = 1; var model = new SearchResultsModel(); model.Query = query; model.SortBy = sort.Value; model.TimeFilter = time.Value; model.ResultType = resultType; if (!string.IsNullOrEmpty(model.Query)) { SeekedList<Guid> postIds = null; SeekedList<Guid> subIds = null; switch (resultType) { case null: postIds = _postDao.QueryPosts(query, model.LimitingToSub != null ? model.LimitingToSub.Sub.Id : (Guid?)null, sort.Value, time.Value, ((pageNumber - 1) * pageSize), pageSize); subIds = _subDao.GetAllSubs(model.Query, SubsSortBy.Relevance, ((pageNumber - 1) * pageSize), pageSize); break; case SearchResultType.Post: postIds = _postDao.QueryPosts(query, model.LimitingToSub != null ? model.LimitingToSub.Sub.Id : (Guid?)null, sort.Value, time.Value, ((pageNumber - 1) * pageSize), pageSize); break; case SearchResultType.Sub: subIds = _subDao.GetAllSubs(model.Query, SubsSortBy.Relevance, ((pageNumber - 1) * pageSize), pageSize); break; default: throw new Exception("unknown result type"); } if (postIds != null) model.Posts = new PagedList<PostWrapped>(_postWrapper.Wrap(postIds, _userContext.CurrentUser), pageNumber.Value, pageSize.Value, postIds.HasMore); if (subIds != null) model.Subs = new PagedList<SubWrapped>(_subWrapper.Wrap(subIds, _userContext.CurrentUser), pageNumber.Value, pageSize.Value, subIds.HasMore); } return View("Search", model); }
public ActionResult Frontpage(PostsSortBy? sort, TimeFilter? time, int? pageNumber, int? pageSize) { var subs = _contextService.GetSubscribedSubIds(); if (sort == null) sort = PostsSortBy.Hot; if (time == null) time = TimeFilter.All; if (pageNumber == null || pageNumber < 1) pageNumber = 1; if (pageSize == null) pageSize = 25; if (pageSize > 100) pageSize = 100; if (pageSize < 1) pageSize = 1; var postIds = _postDao.GetPosts(subs, sort.Value, time.Value, true /*hide removed posts TODO: only hide if not post admin*/, ((pageNumber - 1) * pageSize), pageSize); var model = new SubPostsModel(); model.SortBy = sort.Value; model.TimeFilter = time; if (subs.Any()) // maybe the user hasn't subscribed to any subs? model.Posts = new PagedList<PostWrapped>(_postWrapper.Wrap(postIds, _userContext.CurrentUser), pageNumber.Value, pageSize.Value, postIds.HasMore); return View("Posts", model); }
/// <summary> /// Gets the leaderboard filtered by time. /// </summary> /// <param name="segmentId">The Strava segment id.</param> /// <param name="filter">The time filter.</param> /// <returns>A time filtered leaderboard.</returns> public Leaderboard GetSegmentLeaderboard(String segmentId, TimeFilter filter) { String fltr = String.Empty; // ‘this_year’, ‘this_month’, ‘this_week’, ‘today’ switch (filter) { case TimeFilter.ThisMonth: fltr = "this_month"; break; case TimeFilter.ThisWeek: fltr = "this_week"; break; case TimeFilter.ThisYear: fltr = "this_year"; break; case TimeFilter.Today: fltr = "today"; break; } String getUrl = String.Format("{0}/{1}/leaderboard?filter={2}&access_token={3}", Endpoints.Leaderboard, segmentId, fltr, Authentication.AccessToken ); String json = WebRequest.SendGet(new Uri(getUrl)); return Unmarshaller<Leaderboard>.Unmarshal(json); }
/// <summary> /// For backward compatibility with old wrappers. /// </summary> public ItemTypeCollection GetSellerEvents(TimeFilter ModTimeFilter) { this.ModTimeFilter = ModTimeFilter; Execute(); return(ItemEventList); }
private void TimeFilterUpdated(TimeFilter timeFilter) { // set filtered min and max, based on filter value [0,1] and global min/max currentTimeFilterMin = (long)(timeFilter.MinTime * (maxTimestamp - minTimestamp)) + minTimestamp; isRedrawNecessary = true; }
/// <summary> /// Gets the leaderboard filtered by time. /// </summary> /// <param name="segmentId">The Strava segment id.</param> /// <param name="filter">The time filter.</param> /// <returns>A time filtered leaderboard.</returns> public Leaderboard GetSegmentLeaderboard(String segmentId, TimeFilter filter) { String getUrl = String.Format("{0}/{1}/leaderboard?filter={2}&access_token={3}", Endpoints.Leaderboard, segmentId, UrlHelper.TimeFilterToString(filter), Authentication.AccessToken ); String json = WebRequest.SendGet(new Uri(getUrl)); return Unmarshaller<Leaderboard>.Unmarshal(json); }
/// <summary> /// Gets the leaderboard filtered by time and gender /// </summary> /// <param name="segmentId">The Strava segment id.</param> /// <param name="filter">The time filter.</param> /// <param name="gender">The gender used to filter the leaderboard.</param> /// <param name="page">The result page.</param> /// <param name="perPage">Entries per page.</param> /// <returns>A time filtered leaderboard.</returns> public Leaderboard GetSegmentLeaderboard(String segmentId, TimeFilter filter, Gender gender, int page, int perPage) { String getUrl = String.Format("{0}/{1}/leaderboard?date_range={2}&gender={3}&page={4}&per_page={5}&access_token={6}", Endpoints.Leaderboard, segmentId, UrlHelper.TimeFilterToString(filter), gender.ToString().Substring(0, 1), page, perPage, Authentication.AccessToken ); String json = WebRequest.SendGet(new Uri(getUrl)); return Unmarshaller<Leaderboard>.Unmarshal(json); }
/// <summary> /// Gets the leaderboard filtered by time. /// </summary> /// <param name="segmentId">The Strava segment id.</param> /// <param name="filter">The time filter.</param> /// <param name="page">The result page.</param> /// <param name="perPage">Entries per page.</param> /// <returns>A time filtered leaderboard.</returns> public async Task<Leaderboard> GetSegmentLeaderboardAsync(String segmentId, TimeFilter filter, int page, int perPage) { String getUrl = String.Format("{0}/{1}/leaderboard?date_range={2}&page={3}&per_page={4}&access_token={5}", Endpoints.Leaderboard, segmentId, UrlHelper.TimeFilterToString(filter), page, perPage, Authentication.AccessToken ); String json = await WebRequest.SendGetAsync(new Uri(getUrl)); return Unmarshaller<Leaderboard>.Unmarshal(json); }
public ActionResult <List <DHT> > GetDHTS([FromBody] TimeFilter timeFilter) { List <DHT> dhts = _dhtRepository.GetValuesByDate(timeFilter); return(Json(dhts)); }
private void btnQuery_Click(object sender, EventArgs e) { string result; try { if (!ValidateFilter(out result)) { OnAudit($"שגיאת הגדרת חיפוש {result}", AuditSeverity.Error); return; } if (Reply != null) { DaysFilter daysFilter = null; TimeFilter timeFilter = null; DateFilter dateFilter = null; if (chkDay.Checked) { daysFilter = new DaysFilter(); if (lbDays.SelectedItems != null) { foreach (object oDay in lbDays.SelectedItems) { int dayIndex = lbDays.Items.IndexOf(oDay); daysFilter.Days.Add((DayOfWeek)dayIndex); } } } if (chkTime.Checked) { timeFilter = new TimeFilter(); if (rbTime.Checked) { timeFilter.Time = dtTime.Value; } else { timeFilter.TimeFrom = dtTimeFrom.Value; timeFilter.TimeTo = dtTimeTo.Value; } timeFilter.FromTo = !rbTime.Checked; } if (chkDate.Checked) { dateFilter = new DateFilter(); if (rbDate.Checked) { dateFilter.Date = dtDate.Value; } else { dateFilter.DateFrom = dtDateFrom.Value; dateFilter.DateTo = dtDateTo.Value; } dateFilter.FromTo = !rbDate.Checked; } SearchFilter searchFilter = new SearchFilter(daysFilter, timeFilter, dateFilter); Reply(null, searchFilter); Close(); } } catch (Exception ex) { OnAudit($"תקלת שאילתא: {ex.Message}", AuditSeverity.Error); } }
/// <summary> /// Gets the leaderboard filtered by time. /// </summary> /// <param name="segmentId">The Strava segment id.</param> /// <param name="filter">The time filter.</param> /// <param name="page">The result page.</param> /// <param name="perPage">Entries per page.</param> /// <returns>A time filtered leaderboard.</returns> public async Task<Leaderboard> GetSegmentLeaderboardAsync(String segmentId, TimeFilter filter, int page, int perPage) { String fltr = String.Empty; // ‘this_year’, ‘this_month’, ‘this_week’, ‘today’ switch (filter) { case TimeFilter.ThisMonth: fltr = "this_month"; break; case TimeFilter.ThisWeek: fltr = "this_week"; break; case TimeFilter.ThisYear: fltr = "this_year"; break; case TimeFilter.Today: fltr = "today"; break; } String getUrl = String.Format("{0}/{1}/leaderboard?date_range={2}&page={3}&per_page={4}&access_token={5}", Endpoints.Leaderboard, segmentId, fltr, page, perPage, Authentication.AccessToken ); String json = await WebRequest.SendGetAsync(new Uri(getUrl)); return Unmarshaller<Leaderboard>.Unmarshal(json); }
/// <summary> /// Gets the leaderboard of a segment. You can use various filters to filter the data. /// Some of the filters require a Strava Premium account! /// </summary> /// <param name="segmentId">The Strava segment Id.</param> /// <param name="following">The leaderboard only shows athletes you're following.</param> /// <param name="weight">The weight class used to filter the leaderboard.</param> /// <param name="age">The age group used to filter the leaderboard.</param> /// <param name="time">The time used to filter the leaderboard.</param> /// <param name="gender">The gender used to filter the leaderboard.</param> /// <returns>The leaderboard filtered by gender.</returns> public Leaderboard GetSegmentLeaderboard(string segmentId, bool following, WeightFilter weight, AgeFilter age, TimeFilter time, GenderFilter gender) { int page = 1; //Create one dummy request to get the number of entries. Leaderboard request = GetSegmentLeaderboard(segmentId, following, weight, age, time, gender, 1, 1); int totalAthletes = request.EntryCount; Leaderboard leaderboard = new Leaderboard { EffortCount = request.EffortCount, EntryCount = request.EntryCount }; while ((page - 1) * 200 < totalAthletes) { Leaderboard l = GetSegmentLeaderboard(segmentId, following, weight, age, time, gender, page++, 200); foreach (LeaderboardEntry entry in l.Entries) { leaderboard.Entries.Add(entry); } } return(leaderboard); }
/// <summary> /// Gets the leaderboard of a segment. You can use various filters to filter the data. /// Some of the filters require a Strava Premium account! /// </summary> /// <param name="segmentId">The Strava segment Id.</param> /// <param name="weight">The weight class used to filter the leaderboard.</param> /// <param name="age">The age group used to filter the leaderboard.</param> /// <param name="time">The time used to filter the leaderboard.</param> /// <param name="gender">The gender used to filter the leaderboard.</param> /// <param name="page">The result page.</param> /// <param name="perPage">Efforts shown per page.</param> /// <returns>The leaderboard filtered by gender.</returns> public async Task <Leaderboard> GetSegmentLeaderboardAsync(string segmentId, WeightFilter weight, AgeFilter age, TimeFilter time, GenderFilter gender, int page, int perPage) { bool useGender = false; bool useTime = false; bool useAge = false; bool useWeight = false; string genderFilter = string.Empty; string timeFilter = string.Empty; string ageFilter = string.Empty; string weightFilter = string.Empty; if (!string.IsNullOrEmpty(StringConverter.GenderFilterToString(gender))) { genderFilter = string.Format("gender={0}", StringConverter.GenderFilterToString(gender)); useGender = true; } if (!string.IsNullOrEmpty(StringConverter.TimeFilterToString(time))) { timeFilter = string.Format("date_range={0}", StringConverter.TimeFilterToString(time)); useTime = true; } if (!string.IsNullOrEmpty(StringConverter.AgeFilterToString(age))) { ageFilter = string.Format("age_group={0}", StringConverter.AgeFilterToString(age)); useAge = true; } if (!string.IsNullOrEmpty(StringConverter.WeightFilterToString(weight))) { weightFilter = string.Format("weight_class={0}", StringConverter.WeightFilterToString(weight)); useWeight = true; } string getUrl = string.Format("{0}/{1}/leaderboard?{2}&{3}&{4}&{5}&page={6}&per_page={7}&access_token={8}", Endpoints.Leaderboard, segmentId, useGender ? genderFilter : string.Empty, useTime ? timeFilter : string.Empty, useAge ? ageFilter : string.Empty, useWeight ? weightFilter : string.Empty, page, perPage, AuthSettings.ScopeAccessToken ); string json = await StravaUWP.Helper.HttpHelper.GetRequestAsync(getUrl);; return(Unmarshaller <Leaderboard> .Unmarshal(json)); }
public OrderTypeCollection GetOrders(TimeFilter Filter, TradingRoleCodeType OrderRole, OrderStatusCodeType OrderStatus) { return(ebayGetOrdersCall.GetOrders(Filter, OrderRole, OrderStatus)); }
public ActionResult Posts(string name, PostsSortBy? sort, TimeFilter? time, int? pageNumber, int? pageSize) { if (string.IsNullOrEmpty(name)) return Redirect(Url.Subs()); var subs = new List<Guid>(); Sub sub = null; if (name.Equals("all", StringComparison.InvariantCultureIgnoreCase)) { // TODO: Filter only by subs that want to be including in "all". For now, we will do nothing, which will effectively return all posts. } else { // the user wants to view a specific sub sub = _subDao.GetSubByName(name); if (sub == null) return Redirect(Url.Subs(name)); if(_userContext.CurrentUser != null) _subActivityDao.MarkSubActive(_userContext.CurrentUser.Id, sub.Id); subs.Add(sub.Id); } if (sort == null) sort = PostsSortBy.Hot; // TODO: get default from sub if (time == null) time = TimeFilter.All; if (pageNumber == null || pageNumber < 1) pageNumber = 1; if (pageSize == null) pageSize = 25; if (pageSize > 100) pageSize = 100; if (pageSize < 1) pageSize = 1; var postIds = _postDao.GetPosts(subs, sort.Value, time.Value, true /*hide removed posts TODO: only hide if not post admin*/, ((pageNumber - 1) * pageSize), pageSize); var model = new SubPostsModel(); model.Sub = sub != null ? _subWrapper.Wrap(sub.Id, _userContext.CurrentUser) : null; model.SortBy = sort.Value; model.TimeFilter = time; model.Posts = new PagedList<PostWrapped>(_postWrapper.Wrap(postIds, _userContext.CurrentUser), pageNumber.Value, pageSize.Value, postIds.HasMore); return View(model); }
/// <summary> /// For backward compatibility with old wrappers. /// </summary> public List <TransactionType> GetSellerTransactions(TimeFilter ModTimeFilter) { this.ModTimeFilter = ModTimeFilter; Execute(); return(TransactionList); }
public ActionResult SearchSub(string name, string query, PostsSearchSortBy? sort, TimeFilter? time, int? pageNumber, int? pageSize) { if (string.IsNullOrEmpty(name)) return Redirect(Url.Subs()); if (sort == null) sort = PostsSearchSortBy.Relevance; if (time == null) time = TimeFilter.All; var sub = _subDao.GetSubByName(name); if (sub == null) return Redirect(Url.Subs(name)); if (pageNumber == null || pageNumber < 1) pageNumber = 1; if (pageSize == null) pageSize = 25; if (pageSize > 100) pageSize = 100; if (pageSize < 1) pageSize = 1; var model = new SearchResultsModel(); model.Query = query; model.SortBy = sort.Value; model.TimeFilter = time.Value; model.ResultType = SearchResultType.Post; model.LimitingToSub = _subWrapper.Wrap(sub.Id, _userContext.CurrentUser); var postIds = _postDao.QueryPosts(query, model.LimitingToSub.Sub.Id, sort.Value, time.Value, ((pageNumber - 1) * pageSize), pageSize); if (!string.IsNullOrEmpty(model.Query)) model.Posts = new PagedList<PostWrapped>( _postWrapper.Wrap(postIds, _userContext.CurrentUser), pageNumber.Value, pageSize.Value, postIds.HasMore); return View("Search", model); }
public SeekedList<Guid> QueryPosts(string text, Guid? subId = null, PostsSearchSortBy sortBy = PostsSearchSortBy.Relevance, TimeFilter timeFilter = TimeFilter.All, int? skip = null, int? take = null) { // this implemention will eventually store a index, such as solr. return _conn.Perform(conn => { var query = conn.From<Post>(); if (subId.HasValue) { query.Where(x => x.SubId == subId); } if (!string.IsNullOrEmpty(text)) { query.Where(x => x.Title.Contains(text) || x.Content.Contains(text)); } if (timeFilter != TimeFilter.All) { TimeSpan timeSpan; switch (timeFilter) { case TimeFilter.Hour: timeSpan = TimeSpan.FromHours(1); break; case TimeFilter.Day: timeSpan = TimeSpan.FromDays(1); break; case TimeFilter.Week: timeSpan = TimeSpan.FromDays(7); break; case TimeFilter.Month: timeSpan = TimeSpan.FromDays(30); break; case TimeFilter.Year: timeSpan = TimeSpan.FromDays(365); break; default: throw new Exception("unknown time filter"); } var from = Common.CurrentTime() - timeSpan; query.Where(x => x.DateCreated >= from); } var totalCount = conn.Count(query); query.Skip(skip).Take(take); switch (sortBy) { case PostsSearchSortBy.Relevance: // let the db do its thing break; case PostsSearchSortBy.Top: query.OrderByExpression = "ORDER BY (score(vote_up_count, vote_down_count), date_created) DESC"; break; case PostsSearchSortBy.New: query.OrderByDescending(x => x.DateCreated); break; case PostsSearchSortBy.Comments: // TODO: break; default: throw new Exception("unknown sort"); } query.SelectExpression = "SELECT \"id\""; return new SeekedList<Guid>(conn.Select(query).Select(x => x.Id), skip ?? 0, take, totalCount); }); }