Ejemplo n.º 1
0
 /// <summary>
 /// Reads the menu hierarchy asynchronously from the database store.
 /// </summary>
 /// <returns>Task containing the hierarchy as a JSON string.</returns>
 public static Task <string> ReadFromStoreAsync()
 {
     using (var db = new SimplyExpectingDataContext())
     {
         return(db.MenuItems.Include("Content").GetTopLevelMenus() /*.RemoveCyclicReferences()*/.SerializeToJsonAsync());
     }
 }
Ejemplo n.º 2
0
 public Task WriteToStore()
 {
     return(Task.Run(() =>
     {
         try
         {
             using (var db = new SimplyExpectingDataContext())
             {
                 var lastVersion = db.PageContent.OrderByDescending(c => c.Version).FirstOrDefault().Version;
                 Version = lastVersion + 1;
                 db.PageContent.Add(this);
                 db.SaveChanges();
             }
         }
         catch (Exception x)
         {
             System.Diagnostics.Debug.WriteLine(x.Message);
         }
     }));
 }
Ejemplo n.º 3
0
        public Task <Content> ReadFromStoreAsync(int sectionId, int version)
        {
            return(Task.Run(() =>
            {
                using (var db = new SimplyExpectingDataContext())
                {
                    var content = db.PageContent.Where(c => c.SectionId == sectionId && c.Version > version)
                                  .OrderByDescending(c => c.Version)
                                  .FirstOrDefault();

                    if (content == null)
                    {
                        content = new Content {
                            SectionId = sectionId, Version = version
                        }
                    }
                    ;

                    return content;
                }
            }));
        }
Ejemplo n.º 4
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional, version = RouteParameter.Optional }
                );

            config.Formatters.Add(new BsonMediaTypeFormatter());

            Database.SetInitializer(new DatabaseInitialier());
            using (var db = new SimplyExpectingDataContext())
            {
                db.Configuration.LazyLoadingEnabled = true;
                db.Database.Initialize(true);
            }
        }