public void GetById(int id)
 {
     try
     {
         MenuItemRelation item = null;
         Assert.DoesNotThrow(() => item = Repository.GetById(id));
         Assert.NotNull(item);
         Assert.Greater(item.Id, 0);
     }
     catch (Exception ex)
     {
         LogEventManager.Logger.Error(ex);
         throw;
     }
 }
 public void SaveById(MenuItemRelation entity)
 {
     try
     {
         LogEventManager.Logger.Error("SaveById(MenuItemRelation entity) execution has started");
         Save(entity);
     }
     catch (Exception ex)
     {
         LogEventManager.Logger.Error(ex.Message, ex);
         throw;
     }
     finally
     {
         LogEventManager.Logger.Error("SaveById(MenuItemRelation entity) execution has finished");
     }
 }
        public void Save(MenuItemRelation entity)
        {
            try
            {
                LogEventManager.Logger.Error("Save(MenuItemRelation entity) execution has started");

                Db.Set <MenuItemRelation>().Add(entity);
                if (Db.Set <MenuItemRelation>().Any(it => it.Id == entity.Id))
                {
                    Db.Entry(entity).State = EntityState.Modified;
                }
                Db.SaveChanges();
            }
            catch (Exception ex)
            {
                LogEventManager.Logger.Error(ex.Message, ex);
                throw;
            }
            finally
            {
                LogEventManager.Logger.Error("Save(MenuItemRelation entity) execution has finished");
            }
        }
 public void Delete(MenuItemRelation entity)
 {
     try
     {
         LogEventManager.Logger.Error("Delete(MenuItemRelation entity) execution has started");
         var victim = Db.Set <MenuItemRelation>().SingleOrDefault(it => entity.Id == it.Id);
         if (victim == null)
         {
             return;
         }
         Db.Set <MenuItemRelation>().Remove(victim);
         Db.SaveChanges();
     }
     catch (Exception ex)
     {
         LogEventManager.Logger.Error(ex.Message, ex);
         throw;
     }
     finally
     {
         LogEventManager.Logger.Error("Delete(MenuItemRelation entity) execution has finished");
     }
 }
        internal static void PopulateDefaultMenuData(DbContext db)
        {
            try
            {
                var home = new MenuItem
                {
                    Code        = "1",
                    Name        = "Home",
                    DateCreated = DateTime.Today,
                    IsActive    = true,
                    SortOrder   = 0
                };
                db.Set <MenuItem>().Add(home);
                var admin = new MenuItem
                {
                    Code        = "2",
                    Name        = "Admin",
                    DateCreated = DateTime.Today,
                    IsActive    = true,
                    SortOrder   = 0
                };
                db.Set <MenuItem>().Add(admin);
                var roles = new MenuItem
                {
                    Code        = "6",
                    Name        = "Roles",
                    DateCreated = DateTime.Today,
                    IsActive    = true,
                    SortOrder   = 0,
                    ParentId    = admin.Id
                };
                db.Set <MenuItem>().Add(roles);
                var about = new MenuItem
                {
                    Code        = "7",
                    Name        = "About",
                    DateCreated = DateTime.Today,
                    IsActive    = true,
                    SortOrder   = 0,
                    ParentId    = home.Id
                };
                db.Set <MenuItem>().Add(about);
                var defaultRoute = new RouteName
                {
                    Code        = "1",
                    Name        = "Default",
                    DateCreated = DateTime.Today,
                    IsActive    = true,
                    SortOrder   = 0
                };
                db.Set <RouteName>().Add(defaultRoute);
                var controllerParam = new RouteParam
                {
                    Code = "1",
                    Name = "controller",
                    // DateCreated = DateTime.Today,
                    IsActive  = true,
                    SortOrder = 0
                };
                db.Set <RouteParam>().Add(controllerParam);
                var actionParam = new RouteParam
                {
                    Code = "2",
                    Name = "action",
                    // DateCreated = DateTime.Today,
                    IsActive  = true,
                    SortOrder = 0
                };
                db.Set <RouteParam>().Add(actionParam);
                var areaParam = new RouteParam
                {
                    Code = "3",
                    Name = "area",
                    // DateCreated = DateTime.Today,
                    IsActive  = true,
                    SortOrder = 0
                };
                db.Set <RouteParam>().Add(areaParam);
                var relGroup = new MenuItemRelationGroup
                {
                    Code        = "1",
                    Name        = "Layout",
                    DateCreated = DateTime.Today,
                    IsActive    = true,
                    SortOrder   = 0
                };
                db.Set <MenuItemRelationGroup>().Add(relGroup);
                var homeRel = new MenuItemRelation
                {
                    MenuItemId = home.Id,
                    MenuItemRelationGroupId = relGroup.Id,
                    RouteNameId             = defaultRoute.Id
                };
                db.Set <MenuItemRelation>().Add(homeRel);
                var adminRel = new MenuItemRelation
                {
                    MenuItemId = admin.Id,
                    MenuItemRelationGroupId = relGroup.Id,
                    RouteNameId             = defaultRoute.Id
                };
                db.Set <MenuItemRelation>().Add(adminRel);
                var aboutRel = new MenuItemRelation
                {
                    MenuItemId = about.Id,
                    MenuItemRelationGroupId = relGroup.Id,
                    RouteNameId             = defaultRoute.Id
                };
                db.Set <MenuItemRelation>().Add(aboutRel);
                var rolesRel = new MenuItemRelation
                {
                    MenuItemId = roles.Id,
                    MenuItemRelationGroupId = relGroup.Id,
                    RouteNameId             = defaultRoute.Id
                };
                db.Set <MenuItemRelation>().Add(rolesRel);
                db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue
                {
                    RouteParamId       = controllerParam.Id,
                    Value              = "Home",
                    MenuItemRelationId = homeRel.Id
                });


                db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue
                {
                    RouteParamId       = actionParam.Id,
                    Value              = "Index",
                    MenuItemRelationId = homeRel.Id
                });
                db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue
                {
                    RouteParamId       = controllerParam.Id,
                    Value              = "Admin",
                    MenuItemRelationId = adminRel.Id
                });

                db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue
                {
                    RouteParamId       = controllerParam.Id,
                    Value              = "Admin",
                    MenuItemRelationId = rolesRel.Id
                });
                db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue
                {
                    RouteParamId       = actionParam.Id,
                    Value              = "Users",
                    MenuItemRelationId = rolesRel.Id
                });
                db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue
                {
                    RouteParamId       = actionParam.Id,
                    Value              = "Index",
                    MenuItemRelationId = adminRel.Id
                });
                db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue
                {
                    RouteParamId       = areaParam.Id,
                    Value              = "marketing",
                    MenuItemRelationId = adminRel.Id
                });
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                LogEventManager.Logger.Error(ex.Message, ex);
                throw;
            }
        }