Tuesday, March 27, 2018

json serialize


using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using Sitecore.Data.Items;
using VAPI.Models;
using System.Text;
using Sitecore.SecurityModel;
using System.Web.Script.Serialization;
using Sitecore.Data;

namespace VAPI.Controllers
{
    public class ApiController : Controller
    {
        // GET: Api
        #region API_Calls
        public ActionResult GetSeriesById(string seriesId)
        {
            // $.getJSON('/assetmarkBAT/getvaluationmetrics?pagr=' + $scope.pagr.trans + '&pm=' + $scope.pm.trans + '&vmi=' + $scope.vmi.trans + '&recalculate=' + $scope.recalculate + '&report=' + $scope.report, function (data) {

            //http://nine1.local/api/sitecore/FSO/GetSeriesById
            //http://nine1.local/api/sitecore/API/GetSeriesById?seriesId={7D5179AD-845C-4A76-A074-4F3A2999AE38}&year=2018

            //read query string for Series          
            if (string.IsNullOrEmpty(seriesId))
                return Json(new
                {
                    message = "Invalid Series ID"
                }, JsonRequestBehavior.AllowGet);

            //read query string for Year          
            string yearParam = Request.QueryString["year"];
            if (string.IsNullOrEmpty(yearParam))
            {
                yearParam = System.DateTime.Now.Year.ToString();
            }

            //Find Series item     
            Item seriesItem = Sitecore.Context.Database.GetItem(seriesId);

            if (seriesItem == null)
            {
                return Json(new
                {
                    message = "No result"
                }, JsonRequestBehavior.AllowGet);
            }

            Item yearItem = seriesItem.GetChildren().FirstOrDefault(x => x.Name == yearParam);

            if (yearItem == null)
            {
                return Json(new
                {
                    message = "No result"
                }, JsonRequestBehavior.AllowGet);
            }

            //Process request
            Year year = new Year() { Number = seriesItem.Name + " " + yearItem.Name, Trims = Helpers.InitializeTrims(yearItem).ToList(), Features = Helpers.InitializeFeatures(yearItem).ToList() };
                    

            var serializer = new JavaScriptSerializer();
            string VAPI = serializer.Serialize(year);

            Year yearNew = serializer.Deserialize<Year>(VAPI);

            return Json(new
            {
                VAPI
            }, JsonRequestBehavior.AllowGet);

           
            //return Json(new
            //{
            //    message = "No data yet"
            //    //operatingprofitannual = (_Helpers.ConvertToDouble(clientModel.Ff_TotalRevenueAnnualized) * PM).ToString(),
            //    //profitmarginannual = PM,
            //    //maxvalue = (maxValueForClient > maxValueForComparative) ? maxValueForClient.ToString() : maxValueForComparative.ToString(),
            //    //currentmin = clientModel.ClientValuationModel.ValuationMin,
            //    //currentmax = clientModel.ClientValuationModel.ValuationMax,

            //    //calculatedmax = comparativeValuationMax,
            //    //calculatedmin = comparativeValuationMin,
            //    //pagr = _Helpers.ConvertToDouble(clientModel.Ff_ProjectedGrowthRate) / 100,
            //    //vmi = clientModel.Vmi_Index,

            //    //top_pagr_max = 12,
            //    //top_pagr_min = 8,
            //    //top_pm_max = 40,
            //    //top_pm_min = 20,
            //    //top_vmi_max = 900,
            //    //top_vmi_min = 700
            //}, JsonRequestBehavior.AllowGet);
        }

        #endregion
    }
}

No comments:

Post a Comment