private User GetFitBitData(User user)
        {
            FitBitClient client = new FitBitClient(Request.Url, HttpContext.Session.SessionID);
            string content = client.GetProfile();
            if (client.isAuthorizated())
            {
                var feedDocument = XDocument.Parse(content);
                var userXml = feedDocument.Element("result").Element("user");
                var fitBitId = userXml.Element("encodedId").Value;

                    //Get data from FitBit
                    user.userId = WebSecurity.GetUserId(User.Identity.Name);
                    user.City = userXml.Element("city").Value;
                    user.FitBitEncodedID = userXml.Element("encodedId").Value;
                    user.DisplayName = userXml.Element("displayName").Value;
                    user.FullName = userXml.Element("fullName").Value;
                    user.City = userXml.Element("city").Value;
                    user.State = "WA";
                    user.DistanceUnit = userXml.Element("distanceUnit").Value;
                    user.Gender = userXml.Element("gender").Value;
                    user.Avatar = userXml.Element("avatar").Value;

                    user.Height = userXml.Element("height").Value;
                    user.WeightFitBit = userXml.Element("weight").Value;

                    //GET Calories
                    var data = client.GetCalories();

                    var collection = new List<Calories>();

                    user.CaloriesList = collection;

                    foreach (KeyValuePair<string, int> kvp in data)
                    {
                        Calories Calories = new Calories();
                        Calories.date = kvp.Key;
                        Calories.value = kvp.Value;

                        user.CaloriesList.Add(Calories);
                    }
                    user.ActualCalories = data.Values[data.Count - 1];

                    user = GetCaloriesImage(user);

                    //GET MinutesAsSleep
                    var dataMinutesAsSleep = client.GetMinutesAsSleep();

                    var collectionMinutesAsSleep = new List<MinutesAsSleep>();

                    user.MinutesAsSleepList = collectionMinutesAsSleep;

                    foreach (KeyValuePair<string, int> kvp in dataMinutesAsSleep)
                    {
                        MinutesAsSleep MinutesAsSleep = new MinutesAsSleep();
                        MinutesAsSleep.date = kvp.Key;
                        MinutesAsSleep.value = kvp.Value;

                        user.MinutesAsSleepList.Add(MinutesAsSleep);
                    }
                    user.ActualMinutesAsSleep = dataMinutesAsSleep.Values[dataMinutesAsSleep.Count - 1];

                    user = GetMinutesAsSleepImage(user);

                    //GET TotalNumberOfSteps
                    var dataTotalNumberOfSteps = client.GetTotalNumberOfSteps();

                    var collectionTotalNumberOfSteps = new List<TotalNumberOfSteps>();

                    user.TotalNumberOfStepsList = collectionTotalNumberOfSteps;

                    foreach (KeyValuePair<string, int> kvp in dataTotalNumberOfSteps)
                    {
                        TotalNumberOfSteps TotalNumberOfSteps = new TotalNumberOfSteps();
                        TotalNumberOfSteps.date = kvp.Key;
                        TotalNumberOfSteps.value = kvp.Value;

                        user.TotalNumberOfStepsList.Add(TotalNumberOfSteps);
                    }
                    user.ActualTotalNumberOfSteps = dataTotalNumberOfSteps.Values[dataTotalNumberOfSteps.Count - 1];

                    user = GetTotalNumberOfStepsImage(user);

                    //GET TotalFloorsClimbled
                    var dataTotalFloorsClimbled = client.GetTotalFloorsClimbled();

                    var collectionTotalFloorsClimbled = new List<TotalFloorsClimbled>();

                    user.TotalFloorsClimbledList = collectionTotalFloorsClimbled;

                    foreach (KeyValuePair<string, int> kvp in dataTotalFloorsClimbled)
                    {
                        TotalFloorsClimbled TotalFloorsClimbled = new TotalFloorsClimbled();
                        TotalFloorsClimbled.date = kvp.Key;
                        TotalFloorsClimbled.value = kvp.Value;

                        user.TotalFloorsClimbledList.Add(TotalFloorsClimbled);
                    }
                    user.ActualTotalFloorsClimbled = dataTotalFloorsClimbled.Values[dataTotalFloorsClimbled.Count - 1];

                    user = GetTotalFloorsClimbledImage(user);

                    user.HasFitBitData = true;
                    db.SaveChanges();
                    return user;

            }
            else
            {

                Response.Redirect(content);
                return user;
            }
        }
Exemplo n.º 2
0
        private User GetFitBitData(User user)
        {
            FitBitClient client  = new FitBitClient(Request.Url, HttpContext.Session.SessionID);
            string       content = client.GetProfile();

            if (client.isAuthorizated())
            {
                var feedDocument = XDocument.Parse(content);
                var userXml      = feedDocument.Element("result").Element("user");
                var fitBitId     = userXml.Element("encodedId").Value;


                //Get data from FitBit
                user.userId          = WebSecurity.GetUserId(User.Identity.Name);
                user.City            = userXml.Element("city").Value;
                user.FitBitEncodedID = userXml.Element("encodedId").Value;
                user.DisplayName     = userXml.Element("displayName").Value;
                user.FullName        = userXml.Element("fullName").Value;
                user.City            = userXml.Element("city").Value;
                user.State           = "WA";
                user.DistanceUnit    = userXml.Element("distanceUnit").Value;
                user.Gender          = userXml.Element("gender").Value;
                user.Avatar          = userXml.Element("avatar").Value;



                user.Height       = userXml.Element("height").Value;
                user.WeightFitBit = userXml.Element("weight").Value;



                //GET Calories
                var data = client.GetCalories();

                var collection = new List <Calories>();

                user.CaloriesList = collection;

                foreach (KeyValuePair <string, int> kvp in data)
                {
                    Calories Calories = new Calories();
                    Calories.date  = kvp.Key;
                    Calories.value = kvp.Value;

                    user.CaloriesList.Add(Calories);
                }
                user.ActualCalories = data.Values[data.Count - 1];

                user = GetCaloriesImage(user);


                //GET MinutesAsSleep
                var dataMinutesAsSleep = client.GetMinutesAsSleep();

                var collectionMinutesAsSleep = new List <MinutesAsSleep>();

                user.MinutesAsSleepList = collectionMinutesAsSleep;

                foreach (KeyValuePair <string, int> kvp in dataMinutesAsSleep)
                {
                    MinutesAsSleep MinutesAsSleep = new MinutesAsSleep();
                    MinutesAsSleep.date  = kvp.Key;
                    MinutesAsSleep.value = kvp.Value;

                    user.MinutesAsSleepList.Add(MinutesAsSleep);
                }
                user.ActualMinutesAsSleep = dataMinutesAsSleep.Values[dataMinutesAsSleep.Count - 1];

                user = GetMinutesAsSleepImage(user);

                //GET TotalNumberOfSteps
                var dataTotalNumberOfSteps = client.GetTotalNumberOfSteps();

                var collectionTotalNumberOfSteps = new List <TotalNumberOfSteps>();

                user.TotalNumberOfStepsList = collectionTotalNumberOfSteps;

                foreach (KeyValuePair <string, int> kvp in dataTotalNumberOfSteps)
                {
                    TotalNumberOfSteps TotalNumberOfSteps = new TotalNumberOfSteps();
                    TotalNumberOfSteps.date  = kvp.Key;
                    TotalNumberOfSteps.value = kvp.Value;

                    user.TotalNumberOfStepsList.Add(TotalNumberOfSteps);
                }
                user.ActualTotalNumberOfSteps = dataTotalNumberOfSteps.Values[dataTotalNumberOfSteps.Count - 1];

                user = GetTotalNumberOfStepsImage(user);

                //GET TotalFloorsClimbled
                var dataTotalFloorsClimbled = client.GetTotalFloorsClimbled();

                var collectionTotalFloorsClimbled = new List <TotalFloorsClimbled>();

                user.TotalFloorsClimbledList = collectionTotalFloorsClimbled;

                foreach (KeyValuePair <string, int> kvp in dataTotalFloorsClimbled)
                {
                    TotalFloorsClimbled TotalFloorsClimbled = new TotalFloorsClimbled();
                    TotalFloorsClimbled.date  = kvp.Key;
                    TotalFloorsClimbled.value = kvp.Value;

                    user.TotalFloorsClimbledList.Add(TotalFloorsClimbled);
                }
                user.ActualTotalFloorsClimbled = dataTotalFloorsClimbled.Values[dataTotalFloorsClimbled.Count - 1];

                user = GetTotalFloorsClimbledImage(user);



                user.HasFitBitData = true;
                db.SaveChanges();
                return(user);
            }
            else
            {
                Response.Redirect(content);
                return(user);
            }
        }