/// <summary>
        /// Initialize
        /// </summary>
        /// <param name="securityHelper"></param>
        /// <param name="modelName"></param>
        public void Init(EntitySettingsHelper settingsHelper = null, string modelName = "")
        {
            _settings = settingsHelper;
            if (string.IsNullOrEmpty(modelName))
            {
                modelName = typeof(T).Name;
            }

            _modelName = modelName;
        }
Example #2
0
        /// <summary>
        /// Intialize
        /// </summary>
        public EntityController()
        {
            _settings = _entitySettingsHandler();
            var modelSettings = _settings.ModelFor <T>();

            _viewSettings = modelSettings == null ? new ModelSettings().View : modelSettings.View;
            _helper       = new EntityHelper <T>(_settings, typeof(T).Name);
            _modelname    = this.GetType().Name.Replace("Controller", "");
            EntityViewHelper.CheckAndDefaultSettings(modelSettings);
            Init();
        }
Example #3
0
        /// <summary>
        /// Build the form view model.
        /// </summary>
        /// <param name="result"></param>
        /// <param name="modelname"></param>
        /// <returns></returns>
        public static EntityListViewModel BuildViewModelForIndex <T>(EntityActionResult result, string modelname, string action, EntitySettingsHelper settings)
        {
            PagedList <T> items     = result.ItemAs <PagedList <T> >();
            var           viewmodel = new EntityListViewModel <T>(items, null, true);

            PopulateViewModel(viewmodel, modelname, "ModelList", settings);
            return(viewmodel);
        }
Example #4
0
        /// <summary>
        /// Build the form view model.
        /// </summary>
        /// <param name="result"></param>
        /// <param name="modelname"></param>
        /// <returns></returns>
        public static EntityFormViewModel BuildViewModelForForm(EntityActionResult result, string modelname, string action, EntitySettingsHelper settings)
        {
            var viewmodel = new EntityFormViewModel();

            PopulateViewModel(viewmodel, modelname, "ModelForm", settings);
            viewmodel.Entity         = result.ItemAs <IEntity>();
            viewmodel.FormActionName = action;
            return(viewmodel);
        }
Example #5
0
        /// <summary>
        /// Build the details view model.
        /// </summary>
        /// <param name="result"></param>
        /// <param name="modelname"></param>
        /// <returns></returns>
        public static EntityDetailsViewModel BuildViewModelForDetails(EntityActionResult result, string modelname, string action, EntitySettingsHelper settings)
        {
            var viewmodel = new EntityDetailsViewModel();

            PopulateViewModel(viewmodel, modelname, "ModelDetails", settings);
            viewmodel.Entity = result.ItemAs <IEntity>();
            return(viewmodel);
        }
Example #6
0
        /// <summary>
        /// Build one of the view models either for Details, Form, List.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="result"></param>
        /// <param name="modelname"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        public static EntityBaseViewModel BuildViewModel <T>(EntityActionResult result, string modelname, string action, EntitySettingsHelper settings)
        {
            action = action.ToLower();
            EntityBaseViewModel viewModel = null;

            if (action == "details")
            {
                viewModel = BuildViewModelForDetails(result, modelname, action, settings);
            }

            else if (action == "edit" || action == "create")
            {
                viewModel = BuildViewModelForForm(result, modelname, action, settings);
            }

            else if (action == "deleted")
            {
                viewModel = BuildViewModelForDeleted(result, modelname, settings);
            }

            else // List/Index pages.
            {
                viewModel = BuildViewModelForIndex <T>(result, modelname, action, settings);
            }

            return(viewModel);
        }
Example #7
0
        /// <summary>
        /// Build general view model values.
        /// </summary>
        /// <param name="viewmodel"></param>
        /// <param name="modelname"></param>
        /// <param name="controlpath"></param>
        /// <returns></returns>
        public static void PopulateViewModel(EntityBaseViewModel viewmodel, string modelname, string controlpath, EntitySettingsHelper settings)
        {
            viewmodel.UrlCancel = "";

            // This is "modellist", "modelform", "modeldetails" or whater is passed in.
            viewmodel.ControlPath = controlpath;

            // These two should be the same most of the time.
            viewmodel.Name           = modelname;
            viewmodel.ControllerName = modelname;
            viewmodel.UrlCreate      = settings.GetOrDefault(modelname, "View.UrlForCreate", "/" + modelname + "/create");
            viewmodel.UrlManage      = settings.GetOrDefault(modelname, "View.UrlForManage", "/" + modelname + "/manage");
            viewmodel.UrlIndex       = settings.GetOrDefault(modelname, "View.UrlForIndex", "/" + modelname + "/index");

            if (HttpContext.Current != null && HttpContext.Current.Request != null)
            {
                // Check the source url for supporting the back/cancel features.
                if (HttpContext.Current.Request.UrlReferrer != null &&
                    !string.IsNullOrEmpty(HttpContext.Current.Request.UrlReferrer.PathAndQuery))
                {
                    viewmodel.UrlCancel = HttpContext.Current.Request.UrlReferrer.PathAndQuery;
                    viewmodel.UrlBack   = HttpContext.Current.Request.UrlReferrer.PathAndQuery;
                }
            }
        }
Example #8
0
        /// <summary>
        /// Build the form view model.
        /// </summary>
        /// <param name="result"></param>
        /// <param name="modelname"></param>
        /// <returns></returns>
        public static EntityDeletionViewModel BuildViewModelForDeleted(EntityActionResult result, string modelname, EntitySettingsHelper settings)
        {
            var viewmodel = new EntityDeletionViewModel(modelname, "Item has been deleted.");

            PopulateViewModel(viewmodel, modelname, "ModelDetails", settings);
            return(viewmodel);
        }
 /// <summary>
 /// Initialize with optional security helper.
 /// </summary>
 /// <param name="securityHelper"></param>
 public EntityHelper(EntitySettingsHelper settingsHelper = null, string modelName = "")
 {
     Init(settingsHelper, modelName);
 }