示例#1
0
        private string GetJson(string responseFromServer, bool contentLocal, out string proyectoSeleccionado)
        {
            // Dividimos el json obtenido, la primera string para el modelo y la segunda para el ViewBag
            string[] divideJson   = responseFromServer.Split(new string[] { "{ComienzoJsonViewData}" }, StringSplitOptions.None);
            string   jsonModel    = divideJson[0];
            string   jsonViewData = "";

            if (divideJson.Length > 1)
            {
                jsonViewData = divideJson[1];
            }

            // Deserializamos ViewData
            JsonSerializerSettings jsonSerializerSettingsSimple = new JsonSerializerSettings
            {
                TypeNameHandling       = TypeNameHandling.All,
                TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
            };
            ViewDataDictionary ViewDataDeserializado = JsonConvert.DeserializeObject <ViewDataDictionary>(jsonViewData, jsonSerializerSettingsSimple);

            object Comunidad = ViewDataDeserializado.FirstOrDefault(item => item.Key.Equals("Comunidad")).Value;

            if (Comunidad != null)
            {
                proyectoSeleccionado = ((CommunityModel)Comunidad).ShortName;
            }
            else
            {
                proyectoSeleccionado = "ecosistema";
            }

            if (ViewDataDeserializado != null)
            {
                foreach (string item in ViewDataDeserializado.Keys)
                {
                    if (item.Equals("BaseUrlPersonalizacion") && contentLocal)
                    {
                        ViewData.Add(item, $"styles/{proyectoSeleccionado}/Proyectos/{proyectoSeleccionado}/Estilos");
                    }
                    else if (item.Equals("BaseUrlPersonalizacionEcosistema") && contentLocal)
                    {
                        ViewData.Add(item, $"styles/ecosistema/Proyectos/Proyectos/Estilos");
                    }
                    else
                    {
                        ViewData.Add(item, ViewDataDeserializado[item]);
                    }
                }
            }

            return(jsonModel);
        }