Пример #1
0
        public RevenueModel GetIAPRevenues(string AppId, DateTime StartDate, DateTime EndDate)
        {
            // Round to nearest Monday so graph looks sane
            StartDate = GetNearestMonday(StartDate);

            // Sleep on thread so not hitting API with simulatenous requests

            //Thread.Sleep(1000);

            var appIds = GetApplicationIds();

            var iapIds = GetIAPIds(appIds);

            var iapData = DistimoService.GetDistimoData(SupportedDistimoApis.Revenues, "from=" + StartDate.ToString("yyyy-MM-dd") + "&to=" + EndDate.ToString("yyyy-MM-dd") + "&revenue=total&metrics=in_app&view=line&breakdown=application,appstore,date&interval=week");

            var reader = new JsonReader();
            dynamic rawIAPData = reader.Read(iapData);

            List<dynamic> filteredList = new List<dynamic>();

            foreach (dynamic line in rawIAPData.lines)
            {
                string app_id = line.data.application_id;

                if (iapIds.Contains(app_id))
                    filteredList.Add(line);
            }

            var revenueModel = new RevenueModel(GetWeeklyRevenues(filteredList), StartDate);
            return revenueModel;
        }
Пример #2
0
        public RevenueModel GetRevenues(string AppId, DateTime StartDate, DateTime EndDate)
        {
            // Round to nearest Monday so graph looks sane
            // TODO - This increasingly looks like something we should do in JS in the frontend unfortunately :-(
            StartDate = GetNearestMonday(StartDate);

            var revsQueryString = BuildRevenuesQueryString(StartDate, EndDate);

            //TODO - Pass thru appname from frontend
            var filteredList = ExtractAppRevenueData("Winx Fairy School", revsQueryString);
            var revenueModel = new RevenueModel(GetWeeklyRevenues(filteredList), StartDate);

            return revenueModel;
        }