Example #1
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            // Remove XML output
            var config = GlobalConfiguration.Configuration;
            config.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

            // JSON formatting for data serialized from the server to the client
            config.Formatters.JsonFormatter.SerializerSettings = new Newtonsoft.Json.JsonSerializerSettings
            {
                // Camel casing to match JavaScript
                ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver(),
            #if DEBUG
                Formatting = Formatting.Indented
            #else
                Formatting = Formatting.None
            #endif
            };
        }

        #endregion Methods
    }
        public JsonSerializerSettings() : base()
        {
            Formatting       = Newtonsoft.Json.Formatting.Indented;       // Default: [None]
            TypeNameHandling = Newtonsoft.Json.TypeNameHandling.None;     // Default: [None]

            ContractResolver =
                new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();                 // Default: [None]

            //this.CheckAdditionalContent = true;
            //this.ConstructorHandling = Newtonsoft.Json.ConstructorHandling.AllowNonPublicDefaultConstructor;
            //this.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
            //this.DateParseHandling = Newtonsoft.Json.DateParseHandling.None;
            //this.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc;
            //this.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Ignore;
            //this.FloatFormatHandling = Newtonsoft.Json.FloatFormatHandling.DefaultValue;
            //this.FloatParseHandling = Newtonsoft.Json.FloatParseHandling.Double;
            //this.MaxDepth = 5;
            //this.MetadataPropertyHandling = Newtonsoft.Json.MetadataPropertyHandling.Default;
            //this.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Error;
            //this.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
            //this.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Auto;
            //this.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.All;
            //this.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
            //this.StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.Default;
            //this.TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full;
        }
Example #3
0
        private JsonSerializer GetSerializer()
        {
            var settings = new JsonSerializerSettings();

            settings.ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor;
            var contractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();

            contractResolver.DefaultMembersSearchFlags = contractResolver.DefaultMembersSearchFlags | System.Reflection.BindingFlags.NonPublic;
            settings.ContractResolver = contractResolver;

            return(JsonSerializer.Create(settings));
        }
Example #4
0
        static JsonSerializerSettings DefaultSettings()
        {
            var settings = new JsonSerializerSettings();

            settings.NullValueHandling   = NullValueHandling.Ignore;
            settings.Formatting          = Formatting.Indented;
            settings.TypeNameHandling    = TypeNameHandling.None;
            settings.DateFormatHandling  = DateFormatHandling.IsoDateFormat;
            settings.ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor;
            var contractReslover = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();

            contractReslover.DefaultMembersSearchFlags = contractReslover.DefaultMembersSearchFlags | System.Reflection.BindingFlags.NonPublic;
            settings.ContractResolver = contractReslover;

            return(settings);
        }
Example #5
0
        private static void GlobalConfigureApi(HttpConfiguration apiConfig)
        {
            if (apiConfig == null) throw new ArgumentNullException(nameof(apiConfig));
            apiConfig.Filters.Add(new VerifyModelState());
            apiConfig.Filters.Add(new ExceptionFilter());

            apiConfig.SuppressDefaultHostAuthentication();
            apiConfig.Filters.Add(new HostAuthenticationAttribute("Bearer"));
            apiConfig.Filters.Add(new AuthorizeAttribute());

            apiConfig.Formatters.Remove(apiConfig.Formatters.XmlFormatter);

            JsonSerializerSettings settings = apiConfig.Formatters.JsonFormatter.SerializerSettings;

            settings.DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.ffffff'Z'";
            settings.Converters.Add(new ErrorConverter());
            settings.NullValueHandling = NullValueHandling.Ignore;
            settings.Formatting = Formatting.Indented;
            settings.DateFormatHandling = DateFormatHandling.IsoDateFormat;
            var contractReslover = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
            settings.ContractResolver = contractReslover;
            contractReslover.DefaultMembersSearchFlags = contractReslover.DefaultMembersSearchFlags | BindingFlags.NonPublic;
        }
Example #6
0
        public ActionResult Data(string showName, string minInventory)
        {
            List <SessionModel> list = null;
            int minInventoryNum      = Convert.ToInt32(minInventory);

            using (EscapeRoomDBEntities entities = new EscapeRoomDBEntities())
            {
                //search query for showname and minimum inventory
                if (!string.IsNullOrEmpty(showName) && !string.IsNullOrEmpty(minInventory))
                {
                    list = entities.Sessions.Where(x => x.Title == showName && (x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Any() ? (x.Game.Capacity) - x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Sum(y => y.Players.Count()) : x.Game.Capacity) >= minInventoryNum).Select(x => new SessionModel
                    {
                        Id        = x.Id,
                        Title     = x.Title,
                        Color     = x.Color,
                        Start     = x.Start,
                        Url       = "../Checkout/Selection/" + x.Id,
                        Inventory = x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Any() ? (x.Game.Capacity) - x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Sum(y => y.Players.Count()) : x.Game.Capacity
                    }).ToList();
                }

                //search query for only show name
                else if (!string.IsNullOrEmpty(showName))
                {
                    list = entities.Sessions.Where(x => x.Title == showName).Select(x => new SessionModel
                    {
                        Id        = x.Id,
                        Title     = x.Title,
                        Color     = x.Color,
                        Start     = x.Start,
                        Inventory = x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Any() ? (x.Game.Capacity) - x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Sum(y => y.Players.Count()) : x.Game.Capacity,
                        Url       = "../Checkout/Selection/" + x.Id
                    }).ToList();
                }

                //search query for only minimum inventory
                else if (!string.IsNullOrEmpty(minInventory))
                {
                    list = entities.Sessions.Where(x => minInventoryNum <= (x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Any() ? (x.Game.Capacity) - x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Sum(y => y.Players.Count()) : x.Game.Capacity)).Select(x => new SessionModel
                    {
                        Id        = x.Id,
                        Title     = x.Title,
                        Color     = x.Color,
                        Start     = x.Start,
                        Inventory = x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Any() ? (x.Game.Capacity) - x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Sum(y => y.Players.Count()) : x.Game.Capacity,
                        Url       = "../Checkout/Selection/" + x.Id
                    }).ToList();
                }

                //no search curriculum
                else
                {
                    list = entities.Sessions.Select(x => new SessionModel
                    {
                        Id        = x.Id,
                        Title     = x.Title,
                        Color     = x.Color,
                        Start     = x.Start,
                        Inventory = x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Any() ? (x.Game.Capacity) - x.Baskets.Where(z => z.PurchaseDate.HasValue || z.ReservedUntilDate > DateTime.UtcNow).Sum(y => y.Players.Count()) : x.Game.Capacity,
                        Url       = "../Checkout/Selection/" + x.Id
                    }).ToList();
                }

                //shorten titles by getting first initials & deal with sold out shows
                foreach (var item in list)
                {
                    //deal with sold out shows
                    if (item.Inventory == 0)
                    {
                        //item.Color = "light" + item.Color;
                        item.Url     = "../Checkout/SoldOut";
                        item.SoldOut = true;
                    }

                    //get initials
                    char[]      array    = item.Title.ToCharArray();
                    List <char> charList = new List <char>();
                    charList.Add(array[0]);

                    for (var i = 1; i < array.Length; i++)
                    {
                        if (array[i - 1] == ' ')
                        {
                            charList.Add(array[i]);
                        }
                    }

                    item.Title = new string(charList.ToArray());
                }

                //change to camelcase from initial caps for compatability with FullCalendar package
                Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver camelSerializer = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
                Newtonsoft.Json.JsonSerializerSettings settings = new Newtonsoft.Json.JsonSerializerSettings();
                settings.ContractResolver = camelSerializer;
                string content = Newtonsoft.Json.JsonConvert.SerializeObject(list, settings);

                //return the list
                return(Content(content));
            }
        }
 public FlowJsonSerializer()
 {
     ContractResolver      = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
     Formatting            = Formatting.Indented;
     ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
 }