public GraphStats admin_gid(string url, DateTime publishDate, string a_url, string username)
        {
            RateController rate   = new RateController();
            user_earned    earned = new user_earned()
            {
                premium = 0, non_premium = 0
            };
            get_admin_gid_Result res;
            user_traffic         traffic = new user_traffic()
            {
                premium = 0, non_premium = 0
            };

            using (var data = db.get_admin_gid(url))
            {
                res = data.FirstOrDefault <get_admin_gid_Result>();
            }
            Authorization auth   = new Authorization(res.Email);
            var           result = auth.service.Data.Ga.Get(("ga:" + res.ga_id), convertDate(publishDate), convertDate(System.DateTime.Now), "ga:sessions");

            result.Filters = "ga:landingPagePath=@" + convertUrl(a_url, url) + ";ga:campaign=@" + username;
            var result1 = auth.service.Data.Ga.Get(("ga:" + res.ga_id), convertDate(publishDate), convertDate(System.DateTime.Now), "ga:sessions");

            result1.Filters = "ga:landingPagePath=@" + convertUrl(a_url, url) + ";ga:campaign=@" + username + ";ga:country=@Canada";
            try
            {
                var final1 = result1.Execute();
                var final  = result.Execute();
                int count  = (int)final.TotalResults;
                int count1 = (int)final1.TotalResults;
                if (count1 != 0)
                {
                    IList <string> l = final1.Rows[0];
                    traffic.premium += long.Parse(l[0]);
                }
                if (count != 0)
                {
                    IList <string> l = final.Rows[0];
                    traffic.non_premium += long.Parse(l[0]);
                }
                traffic.non_premium = traffic.non_premium - traffic.premium;

                earned.premium     = (Decimal.ToDouble(rate.GetRate("premium").FirstOrDefault <get_rate_Result>().rate) * traffic.premium) / 1000;
                earned.non_premium = (Decimal.ToDouble(rate.GetRate("non-premium").FirstOrDefault <get_rate_Result>().rate) * traffic.non_premium) / 1000;
            }catch (Exception E)
            {
            }
            return(new GraphStats()
            {
                dateTime = "", sessions = (traffic.premium + traffic.non_premium).ToString(), earned = earned.premium + earned.non_premium
            });
        }
        public PaymentStats payment_details([FromBody] User user)
        {
            PaymentStats stats = new PaymentStats()
            {
                total_earned = 0, total_traffic = 0, available = 0, last_paid = 0, unpaid_traffic = 0
            };
            user_earned earned = new user_earned()
            {
                premium = 0, non_premium = 0
            };
            get_payment_Result last        = new get_payment_Result();
            DateTime           joiningDate = new DateTime();

            using (var join = new digimarketEntities1().get_joining_date(user.uid))
            {
                joiningDate = join.FirstOrDefault <get_joining_date_Result>().date;
            }

            user_traffic traffic = new TrafficController().UserSession(new DataModel.User_Analytic_Input()
            {
                uid   = user.uid, from_date = new ArticleController().convertDate(joiningDate), to_date = new ArticleController().convertDate(DateTime.Now),
                extra = user.username
            });

            using (var rate = new digimarketEntities1().get_rate("premium"))
            {
                earned.premium = earned.premium + ((traffic.premium * Decimal.ToDouble(rate.FirstOrDefault <get_rate_Result>().rate)) / 1000);
            }
            using (var rate = new digimarketEntities1().get_rate("non-premium"))
            {
                earned.non_premium = earned.non_premium + ((traffic.non_premium * Decimal.ToDouble(rate.FirstOrDefault <get_rate_Result>().rate)) / 1000);
            }

            stats.total_traffic = traffic.premium + traffic.non_premium;

            stats.total_earned = earned.premium + earned.non_premium;
            using (var history = new digimarketEntities1().get_payment(user.uid))
            {
                try {
                    last = history.OrderByDescending(m => m.payment_date).FirstOrDefault() ?? new get_payment_Result()
                    {
                        traffic = 0, amount = 0, uid = user.uid
                    };
                }
                catch (Exception ex)
                {
                }
            }

            stats.last_paid = Decimal.ToDouble(last.amount);
            using (var history = new digimarketEntities1().get_total_earned(user.uid))
            {
                try
                {
                    var result = history.FirstOrDefault <get_total_earned_Result>();
                    stats.available      = stats.total_earned - Decimal.ToDouble(result.totalAmount ?? 0);
                    stats.unpaid_traffic = stats.total_traffic - Decimal.ToInt64(result.totalTraffic ?? 0);
                }
                catch (Exception ex)
                {
                }
            }


            return(stats);
        }