/// <summary>
        /// This method gets current page "View" actions of all modules
        /// </summary>
        /// <param name="actionContext"></param>
        /// <returns></returns>
        public async Task <Dictionary <string, List <ContentResult> > > GetPageModuleResults(ActionContext actionContext)
        {
            Dictionary <string, List <ContentResult> > actionResults = new Dictionary <string, List <ContentResult> >();
            Page currentPage = _scopeService.PageContext.CurrentPage;

            if (currentPage.PageModule != null && currentPage.PageModule.Count > 0)
            {
                currentPage.PageModule = currentPage.PageModule.Where(pm => !pm.IsDeleted).ToList();
                foreach (var pageModule in currentPage.PageModule)
                {
                    Module        module        = _moduleRepository.Get(pageModule.ModuleId);
                    ModuleAction  moduleAction  = module.ModuleAction.FirstOrDefault(ma => ma.Id == pageModule.ModuleActionId);
                    ModuleContext moduleContext = new ModuleContext();
                    moduleContext.ModuleInfo   = module;
                    moduleContext.PageModuleId = pageModule.Id;
                    if (module != null && moduleAction != null)
                    {
                        List <ContentResult> contentResults;
                        string containerId = pageModule.ContainerId.ToString();
                        //Prepare the result object
                        if (actionResults.ContainsKey(containerId))
                        {
                            contentResults = actionResults[containerId];
                        }
                        else
                        {
                            contentResults = new List <ContentResult>();
                            actionResults.Add(containerId, contentResults);
                        }

                        try
                        {
                            IHtmlContent actionResult = await ExecuteModuleController(actionContext, moduleContext, moduleAction);

                            IHtmlContent moduleResult = GetModuleResult(actionResult, moduleContext);
                            contentResults.Add(new ContentResult
                            {
                                HtmlResult = moduleResult,
                                SortOrder  = pageModule.SortOrder
                            });
                        }
                        catch (Exception ex)
                        {
                            var actionResult = "Module load exception has been occured";
                            contentResults.Add(new ContentResult
                            {
                                //Result = actionResult,
                                HtmlResult = new HtmlString(actionResult),
                                SortOrder  = pageModule.SortOrder
                            });
                            _logger.LogError("Module load exception has been occured", ex);
                        }
                    }
                }
            }

            return(actionResults);
        }
Ejemplo n.º 2
0
        public Module Create(Module module)
        {
            using var context = new DeviserDbContext(_dbOptions);
            var dbModule = _mapper.Map <Entities.Module>(module);

            dbModule.CreatedDate = dbModule.LastModifiedDate = DateTime.Now;
            var result = context.Module.Add(dbModule).Entity;

            context.SaveChanges();
            return(_mapper.Map <Module>(result));
        }
 public IActionResult Post([FromBody] Module module)
 {
     try
     {
         var result = _moduleRepository.Create(module);
         if (result != null)
         {
             return(Ok(result));
         }
         return(NotFound());
     }
     catch (Exception ex)
     {
         _logger.LogError(string.Format("Error occured while creating a Module"), ex);
         return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
     }
 }
Ejemplo n.º 4
0
 public Module Create(Module module)
 {
     try
     {
         using (var context = new DeviserDbContext(DbOptions))
         {
             var dbModule = Mapper.Map <Entities.Module>(module);
             dbModule.CreatedDate = dbModule.LastModifiedDate = DateTime.Now;
             var result = context.Module.Add(dbModule).Entity;
             context.SaveChanges();
             return(Mapper.Map <Module>(result));
         }
     }
     catch (Exception ex)
     {
         _logger.LogError("Error occured while calling Create", ex);
     }
     return(null);
 }
Ejemplo n.º 5
0
        public Module Update(Module module)
        {
            try
            {
                using (var context = new DeviserDbContext(DbOptions))
                {
                    var dbModule      = Mapper.Map <Entities.Module>(module);
                    var moduleActions = dbModule.ModuleAction;
                    dbModule.ModuleAction = null;
                    foreach (var moduleAction in moduleActions)
                    {
                        if (context.ModuleAction.Any(pc => pc.Id == moduleAction.Id))
                        {
                            UpdateModuleActionProperties(context, moduleAction);

                            //content exist, therefore update the content
                            context.ModuleAction.Update(moduleAction);
                        }
                        else
                        {
                            moduleAction.ModuleId = dbModule.Id;
                            context.ModuleAction.Add(moduleAction);
                        }
                    }
                    //No need to delte a row from dbo.ModuleAction since the key s referred in dbo.pagemodule.

                    //var toDelete = context.ModuleAction.Where(dbModuleAction => dbModuleAction.ModuleId == dbModule.Id &&
                    //!moduleActions.Any(moduleAction => moduleAction.Id != dbModuleAction.Id)).ToList();

                    //context.ModuleAction.RemoveRange(toDelete);

                    var result = context.Module.Update(dbModule).Entity;
                    context.SaveChanges();
                    return(Mapper.Map <Module>(result));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError("Error occured while calling Update", ex);
            }
            return(null);
        }
Ejemplo n.º 6
0
        public Module UpdateModule(Module module)
        {
            using var context = new DeviserDbContext(_dbOptions);
            var dbModule    = _mapper.Map <Entities.Module>(module);
            var moduleViews = dbModule.ModuleView;

            dbModule.ModuleView = null;
            foreach (var moduleView in moduleViews)
            {
                if (moduleView.ModuleViewType != null)
                {
                    moduleView.ModuleViewTypeId = moduleView.ModuleViewType.Id;
                    moduleView.ModuleViewType   = null;
                }


                if (context.ModuleView.Any(pc => pc.Id == moduleView.Id))
                {
                    UpdateModuleViewProperties(context, moduleView);
                    moduleView.ModuleId = dbModule.Id;
                    //content exist, therefore update the content
                    context.ModuleView.Update(moduleView);
                }
                else
                {
                    moduleView.ModuleId = dbModule.Id;
                    context.ModuleView.Add(moduleView);
                }
            }
            //No need to delete a row from dbo.ModuleView since the key is referred in dbo.PageModule.

            //var toDelete = context.ModuleView.Where(dbModuleView => dbModuleView.ModuleId == dbModule.Id &&
            //!moduleViews.Any(moduleView => moduleView.Id != dbModuleView.Id)).ToList();

            //context.ModuleView.RemoveRange(toDelete);

            var result = context.Module.Update(dbModule).Entity;

            context.SaveChanges();
            return(_mapper.Map <Module>(result));
        }