Example #1
0
        /// <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;
        }
Example #2
0
 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;

            }
        }
Example #4
0
        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);
        }
Example #5
0
        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;
        }
Example #6
0
        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));
        }
Example #7
0
        // 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)));
        }
Example #8
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);
            }
        }
Example #9
0
        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);
        }
Example #10
0
 /// <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;
 }
Example #11
0
        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);
            }
        }
Example #13
0
        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);
            }
        }
Example #14
0
        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 */
        }
Example #15
0
        // 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);
        }
Example #16
0
        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);
        }
Example #17
0
        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);
        }
Example #18
0
        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);
                }
            }
        }
Example #19
0
        /// <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));
        }
Example #20
0
        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);
        }
Example #21
0
        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();
        }
Example #23
0
        /// <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);
        }
Example #24
0
        /// <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);
            }
        }
Example #26
0
 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;
 }
Example #27
0
        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);
        }
Example #28
0
        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);
            });
        }
Example #29
0
        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);
        }
Example #30
0
        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);
        }
Example #31
0
        /// <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);
        }
Example #32
0
 /// <summary>
 /// For backward compatibility with old wrappers.
 /// </summary>
 public ItemTypeCollection GetSellerEvents(TimeFilter ModTimeFilter)
 {
     this.ModTimeFilter = ModTimeFilter;
     Execute();
     return(ItemEventList);
 }
Example #33
0
 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;
 }
Example #34
0
        /// <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);
        }
Example #35
0
        /// <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);
        }
Example #36
0
        /// <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);
        }
Example #37
0
        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);
            }
        }
Example #39
0
        /// <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);
        }
Example #40
0
        /// <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);
        }
Example #41
0
        /// <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));
        }
Example #42
0
 public OrderTypeCollection GetOrders(TimeFilter Filter, TradingRoleCodeType OrderRole, OrderStatusCodeType OrderStatus)
 {
     return(ebayGetOrdersCall.GetOrders(Filter, OrderRole, OrderStatus));
 }
Example #43
0
        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);
        }
Example #44
0
 /// <summary>
 /// For backward compatibility with old wrappers.
 /// </summary>
 public List <TransactionType> GetSellerTransactions(TimeFilter ModTimeFilter)
 {
     this.ModTimeFilter = ModTimeFilter;
     Execute();
     return(TransactionList);
 }
Example #45
0
        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);
        }
Example #46
0
        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);
            });
        }