public async Task LoadResponse(Mbes mbes)
        {
            response = await mbesService.GetResponseByMbesId(mbes.MbesId.Value);

            Logger.Debug(response);

            /*
             * response = new MbesResponse()
             * {
             *      ScaleValues = new System.Collections.Generic.List<int>() {
             *      0, 1, 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
             *      }
             * };
             */

            // get average scores
            Score score = new Score()
            {
                BingeScore    = GetBingeEatingAverageScore(),
                BulimiaScore  = GetBulimiaNervosaAverageScore(),
                AnorexiaScore = GetAnorexiaNervosaAverageScore()
            };

            // display the response with the scores
            view.DisplayResponse(response, score);
        }
        public async Task <List <ApiResponse> > AddClientMbesResponse(MbesResponse mbesResponse)
        {
            string url = ApiUri.AddClientMbesResponse.ToUrl();

            var response = await httpService.PostReadResponse
                           <IEnumerable <ApiResponse>, MbesResponse>(url, mbesResponse);

            return(response.ToList());
        }
        public void DisplayResponse(MbesResponse response, Score score)
        {
            Logger.Log("DISPLAY RESPONSE");

            txtDate.Text     = mbes.DateCreated.ToShortDateString();
            txtHeight.Text   = mbes.Height.Value.ToString("0.00") + "cm";
            txtWeight.Text   = mbes.Weight.Value.ToString("0.00") + "kg";
            txtBMI.Text      = mbes.BMI.Value.ToString("0.00");
            txtBinge.Text    = score.BingeScore.ToString("0.00");
            txtBulimia.Text  = score.BulimiaScore.ToString("0.00");
            txtAnorexia.Text = score.AnorexiaScore.ToString("0.00");
        }
        public async Task AddClientMbesResponse(List <int> scaleValueList)
        {
            if (!CacheProvider.IsSet(CacheKey.LoggedClient))
            {
                // get client info given session username
                ClientSession cliSession = SessionFactory.ReadSession <ClientSession> (SessionKeys.LoggedClient);

                //TOdo show error, session has been lost login again
                if (cliSession == null || !cliSession.IsSet)
                {
                    return;
                }

                client = await cliService.GetClientByUsername(cliSession.Username);
            }
            else
            {
                client = CacheProvider.Get <Client> (CacheKey.LoggedClient);
            }

            // build the mbes response
            int clientId  = client.ClientId.GetValueOrDefault();
            int attemptId = ++client.MbesAttemptCount;

            client.MbesAllowAttempt = false;
            List <int> qids = Enumerable.Range(0, 21).ToList();

            // cm -> m
            float mheight = client.Height.Value / 100;

            // bmi = kg/m^2
            float bmi = client.Weight.Value / (mheight * mheight);

            //TODO UNG BMI
            Mbes mbes = new Mbes()
            {
                MbesClientId = clientId,
                Height       = client.Height,
                Weight       = client.Weight,
                BMI          = bmi,
                DateCreated  = DateTime.Now.Date
            };

            // save muna tong mbes
            // then get mbes id
            // then saka isend ung mbes response
            int mbesId = await mbesService.AddMbes(mbes);

            Logger.Log("MBES ID: " + mbesId);
            if (mbesId == -1)
            {
                return;
            }

            MbesResponse mbesResponse = new MbesResponse()
            {
                MbesResponseId = mbesId,
                AttemptId      = attemptId,
                QuestionIds    = qids,
                ScaleValues    = scaleValueList
            };

            // add an attempt count
            var countResponses = await cliService.AddMbesAttemptCount(client);

            // add the response to db
            var mbesResponses = await mbesService.AddClientMbesResponse(mbesResponse);

            CacheProvider.Set(CacheKey.LoggedClient, client);

            //TODO CHECK IF RESPONSE IS SUCCESSFUL
        }