public ActionResult Create(PageTemplateManageModel model, SubmitTypeEnums submit)
 {
     if (ModelState.IsValid)
     {
         var response = _pageTemplateServices.SavePageTemplate(model);
         if (response.Success)
         {
             var templateId = (int)response.Data;
             SetSuccessMessage(response.Message);
             switch (submit)
             {
                 case SubmitTypeEnums.Save:
                     return RedirectToAction("Index");
                 default:
                     return RedirectToAction("Edit", new { id = templateId });
             }
         }
         SetErrorMessage(response.Message);
     }
     model.Parents = _pageTemplateServices.GetPossibleParents();
     return View(model);
 }
        /// <summary>
        /// Save page template
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel SavePageTemplate(PageTemplateManageModel model)
        {
            ResponseModel response;
            var pageTemplate = GetById(model.Id);
            if (pageTemplate != null)
            {
                var log = new PageTemplateLogManageModel(pageTemplate);
                var childTemplates = new List<PageTemplate>();
                if (pageTemplate.Name.Equals(DefaultTemplateName))
                {
                    childTemplates = GetAll().Where(t => !t.Name.Equals(DefaultTemplateName)).ToList();
                }
                else if (!pageTemplate.Content.Equals(model.Content) || pageTemplate.ParentId != model.ParentId)
                {
                    childTemplates = _pageTemplateRepository.GetHierarcies(pageTemplate).ToList();
                }
                if (childTemplates.Any())
                {
                    foreach (var childTemplate in childTemplates)
                    {
                        Update(childTemplate);
                    }
                }

                pageTemplate.Name = model.Name;
                pageTemplate.Content = model.Content;

                pageTemplate.ParentId = model.ParentId;

                response = HierarchyUpdate(pageTemplate);

                if (response.Success)
                {
                    _pageTemplateLogServices.SavePageTemplateLog(log);
                }

                return response.SetMessage(response.Success ?
                    _localizedResourceServices.T("AdminModule:::PageTemplates:::Messages:::UpdateSuccessfully:::Update page template successfully.")
                    : _localizedResourceServices.T("AdminModule:::PageTemplates:::Messages:::UpdateFailure:::Update page template failed. Please try again later."));
            }
            Mapper.CreateMap<PageTemplateManageModel, PageTemplate>();
            pageTemplate = Mapper.Map<PageTemplateManageModel, PageTemplate>(model);
            response = HierarchyInsert(pageTemplate);
            return response.SetMessage(response.Success ?
                _localizedResourceServices.T("AdminModule:::PageTemplates:::Messages:::CreateSuccessfully:::Create page template successfully.")
                : _localizedResourceServices.T("AdminModule:::PageTemplates:::Messages:::CreateFailure:::Create page template failed. Please try again later."));
        }