public List <Page_Campaign_Session> PostP_C_Session([FromBody] Analytics_Input analytics_Input)
        {
            List <Page_Campaign_Session> list = new List <Page_Campaign_Session>();
            Authorization auth   = new Authorization("*****@*****.**");
            var           result = auth.service.Data.Ga.Get(analytics_Input.ga_id, analytics_Input.from_date, analytics_Input.to_date, analytics_Input.session);

            result.Dimensions = analytics_Input.campaign + "," + analytics_Input.landing_page_path;
            if ((analytics_Input.extra != null))
            {
                if (!analytics_Input.extra.Equals(""))
                {
                    result.Filters = analytics_Input.extra;
                }
            }
            try
            {
                var C_session_result = result.Execute();
                int count            = (int)C_session_result.TotalResults;
                for (int i = 0; i < count; i++)
                {
                    IList <string>        l   = C_session_result.Rows[i];
                    Page_Campaign_Session PCS = new Page_Campaign_Session();
                    PCS.Campaign          = l[0];
                    PCS.Landing_Page_Path = l[1];
                    PCS.Session           = l[2];
                    list.Add(PCS);
                }
            }catch (Exception e)
            { }
            return(list);
        }
        public string PostSession([FromBody] Analytics_Input analytics_Input)
        {
            Authorization auth = new Authorization("*****@*****.**");

            var result = auth.service.Data.Ga.Get(analytics_Input.ga_id, analytics_Input.from_date, analytics_Input.to_date, analytics_Input.session);

            if ((analytics_Input.extra != null))
            {
                if (!analytics_Input.extra.Equals(""))
                {
                    result.Filters = analytics_Input.extra;
                }
            }
            try {
                var session_result = result.Execute();
                int count          = (int)session_result.TotalResults;
                if (count != 0)
                {
                    IList <string> l = session_result.Rows[0];
                    return(l[0]);
                }
            }
            catch (Exception e)
            { }
            return("" + 0);
        }
        public GraphStats PostAdminSession([FromBody] Analytics_Input analytics_Input)
        {
            Authorization auth  = new Authorization(analytics_Input.extra);
            GraphStats    stats = new GraphStats()
            {
                dateTime = "", sessions = "0", earned = 0
            };
            var result  = auth.service.Data.Ga.Get("ga:" + analytics_Input.ga_id, analytics_Input.from_date, analytics_Input.to_date, analytics_Input.session);
            var result1 = auth.service.Data.Ga.Get("ga:" + analytics_Input.ga_id, analytics_Input.from_date, analytics_Input.to_date, analytics_Input.session);

            result.Filters  = "ga:medium=@referral";
            result1.Filters = "ga:medium=@referral;ga:country=@Canada";
            try {
                var session_result1 = result1.Execute();
                var session_result  = result.Execute();


                int count1 = (int)session_result1.TotalResults;
                int count  = (int)session_result.TotalResults;
                if (count != 0)
                {
                    var  temp = session_result.Rows[0];
                    long total = long.Parse(temp[0]); long premium = 0;
                    if (count1 != 0)
                    {
                        var temp2 = session_result1.Rows[0];

                        premium = long.Parse(temp2[0]);
                    }
                    long   nonPremium = total - premium;
                    Double nonearned  = ((Decimal.ToDouble(new RateController().GetRate("non-premium").FirstOrDefault().rate) * nonPremium) / 1000);
                    Double preearned  = ((Decimal.ToDouble(new RateController().GetRate("premium").FirstOrDefault().rate) * premium) / 1000);

                    stats.earned   = nonearned + preearned;
                    stats.sessions = (total).ToString();
                }
            }
            catch (Exception e)
            { }
            return(stats);
        }
        public List <AdminStats> AdminStatistics([FromBody] Analytics_Input analytics_Input)
        {
            //List < List < UserStats >> total_stats = new List<List<UserStats>>();

            List <AdminStats> admin_stats = new List <AdminStats>();

            GraphController use = new GraphController();

            Authorization auth = new Authorization(analytics_Input.extra);

            var result = auth.service.Data.Ga.Get("ga:" + analytics_Input.ga_id, analytics_Input.from_date, analytics_Input.to_date, analytics_Input.session + ",ga:newUsers");

            result.Dimensions = "ga:date, " + analytics_Input.country;
            result.Filters    = "ga:medium=@referral";
            try {
                var response = result.Execute();
                if (response.TotalResults != 0)
                {
                    foreach (var row in response.Rows)
                    {
                        AdminStats temp = new AdminStats()
                        {
                            date = new DateTime(), earning = 0.0, day = "", premium = 0, non_premium = 0, total_traffic = 0, total_earning = 0, country_stats = new List <CountryStats>()
                        };
                        // UserStats temp = user_stats.Last<UserStats>();


                        temp = admin_stats.FirstOrDefault(x => x.day == row[0]);

                        if (temp == null)
                        {
                            temp = new AdminStats()
                            {
                                date = new DateTime(), earning = 0.0, day = "", premium = 0, non_premium = 0, total_traffic = 0, total_earning = 0, country_stats = new List <CountryStats>()
                            };
                        }
                        if (!(temp.day.Equals(row[0])))
                        {
                            AdminStats stats = new AdminStats()
                            {
                                date = new DateTime(), earning = 0.0, day = "", premium = 0, non_premium = 0, total_traffic = 0, total_earning = 0, country_stats = new List <CountryStats>()
                            };

                            stats.day  = row[0];
                            stats.date = dateConverter(row[0]);
                            if (row[1].Equals("Canada"))
                            {
                                stats.premium += long.Parse(row[2]);
                                stats.earning += use.GetEarned(row[2], "premium");

                                stats.total_traffic += long.Parse(row[2]);
                            }
                            else
                            {
                                stats.non_premium   += long.Parse(row[2]);
                                stats.earning       += use.GetEarned(row[2], "non-premium");
                                stats.total_traffic += long.Parse(row[2]);
                            }

                            CountryStats cFind = new CountryStats()
                            {
                                country = row[1], sessions = "0", newSessions = "0"
                            };


                            cFind.sessions    = (Int64.Parse(cFind.sessions) + Int64.Parse(row[2])).ToString();
                            cFind.newSessions = (Int64.Parse(cFind.newSessions) + Int64.Parse(row[3])).ToString();
                            stats.country_stats.Add(cFind);
                            admin_stats.Add(stats);
                        }
                        else
                        {
                            admin_stats.Remove(temp);
                            CountryStats cTemp = new CountryStats();
                            if (row[1].Equals("Canada"))
                            {
                                temp.premium       += long.Parse(row[2]);
                                temp.earning       += use.GetEarned(row[2], "premium");
                                temp.total_traffic += long.Parse(row[2]);
                            }
                            else
                            {
                                temp.non_premium   += long.Parse(row[2]);
                                temp.earning       += use.GetEarned(row[2], "non-premium");
                                temp.total_traffic += long.Parse(row[2]);
                            }

                            CountryStats cFind = new CountryStats()
                            {
                                country = row[1], sessions = "0", newSessions = "0"
                            };

                            cFind.sessions    = (Int64.Parse(row[2])).ToString();
                            cFind.newSessions = (Int64.Parse(row[3])).ToString();
                            temp.country_stats.Add(cFind);
                            admin_stats.Add(temp);
                        }
                    }
                }
            }
            catch (Exception e)
            { }
            return(admin_stats);
        }
        public Map getMapData([FromBody] Analytics_Input input)
        {
            Map res = new Map()
            {
                max = 0, min = 0, avg = 0, mapData = new List <MapData>()
            };
            Dictionary <string, countrieees> countries = CountriesList();

            ArticleController a = new ArticleController();

            var to   = System.DateTime.Now;
            var from = System.DateTime.Now;

            if (to.Month == 1)
            {
                from = new DateTime(to.Year - 1, 12, to.Day);
            }
            else
            {
                from = new DateTime(to.Year, to.Month - 1, to.Day);
            }
            //List < List < UserStats >> total_stats = new List<List<UserStats>>();

            List <MapData> map = new List <MapData>();


            Authorization auth   = new Authorization(input.extra);
            var           result = auth.service.Data.Ga.Get("ga:" + input.ga_id, a.convertDate(from), a.convertDate(to), input.session);

            result.Dimensions = "ga:countryIsoCode";
            try {
                var session_result = result.Execute();


                int count = (int)session_result.TotalResults;
                int total = 0;
                if (count != 0)
                {
                    foreach (var item in session_result.Rows)
                    {
                        total++;
                        if (countries.ContainsKey(item[0]))
                        {
                            map.Add(new MapData()
                            {
                                id = countries[item[0]].id, value = item[1]
                            });
                        }
                        if (res.max == 0)
                        {
                            res.min = Int32.Parse(item[1]);
                        }
                        if (res.max == 0)
                        {
                            res.max = Int32.Parse(item[1]);
                        }
                        if (res.avg == 0)
                        {
                            res.max = Int32.Parse(item[1]);
                        }
                        if (Int32.Parse(item[1]) <= res.min)
                        {
                            res.min = Int32.Parse(item[1]);
                        }
                        if (Int32.Parse(item[1]) >= res.max)
                        {
                            res.max = Int32.Parse(item[1]);
                        }
                        res.avg = res.avg + Int32.Parse(item[1]);
                    }
                }
                res.avg     = total == 0 ? res.avg : res.avg / total;
                res.mapData = map;
            }
            catch (Exception e)
            { }
            return(res);
        }
예제 #6
0
        public AdminGraph statAdminGraph([FromBody] Analytics_Input input)
        {
            ArticleController a     = new ArticleController();
            List <GraphStats> stats = new List <GraphStats>();
            AdminGraph        data  = new AdminGraph()
            {
                amount = 0.0, graph = stats
            };
            var to   = System.DateTime.Now;
            var from = System.DateTime.Now;

            if (to.Month == 1)
            {
                from = new DateTime(to.Year - 1, 12, to.Day);
            }
            else
            {
                from = new DateTime(to.Year, to.Month - 1, to.Day);
            }

            //List < List < UserStats >> total_stats = new List<List<UserStats>>();

            List <GraphStats> list = new List <GraphStats>();


            Authorization auth   = new Authorization(input.extra);
            var           result = auth.service.Data.Ga.Get("ga:" + input.ga_id, a.convertDate(from), a.convertDate(to), input.session);


            var result1 = auth.service.Data.Ga.Get("ga:" + input.ga_id, a.convertDate(from), a.convertDate(to), input.session);

            result.Dimensions  = "ga:year,ga:month,ga:day";
            result1.Dimensions = "ga:year,ga:month,ga:day";

            result.Filters  = "ga:medium=@referral";
            result1.Filters = "ga:medium=@referral;ga:country=@Canada";
            try
            {
                var final  = result.Execute();
                var final1 = result1.Execute();
                int count  = (int)final.TotalResults;
                int count1 = (int)final1.TotalResults;
                if (count != 0 && (count == count1))
                {
                    for (int i = 0; i < count; i++)
                    {
                        var    item1   = final.Rows[i];
                        var    item2   = final1.Rows[i];
                        double pEarned = GetEarned(item2[3], "premium");
                        double nEarned = GetEarned((Int32.Parse(item1[3]) - Int32.Parse(item2[3])).ToString(), "non-premium");
                        data.amount += pEarned + nEarned;


                        GraphStats temp = new GraphStats()
                        {
                            dateTime = item2[2] + "/" + item1[1] + "/" + item1[0], sessions = (Int32.Parse(item1[3])).ToString(), earned = GetEarned((Int32.Parse(item1[3]) - Int32.Parse(item2[3])).ToString(), "non-premium") + GetEarned(item2[3], "premium")
                        };
                        stats.Add(new GraphStats()
                        {
                            dateTime = temp.dateTime, sessions = temp.sessions, earned = temp.earned
                        });
                    }
                    data.graph = stats;
                }
            }catch (Exception e)
            {
            }

            return(data);
        }