public ActionResult Edit(ModuleElementEdit moduleElementEdit) { ModuleElement moduleElement = ModuleElementServices .LoadFirst(r => r.ID == moduleElementEdit.ID.Value); if (moduleElement == null) { return(NotFound(new Result { State = 0, Message = "修改的角色不存在" })); } moduleElement = Mapper.Map(moduleElementEdit, moduleElement); if (ModuleElementServices.EditEntity(moduleElement)) { return(Ok(new Result { State = 1, Message = "修改成功" })); } else { return(BadRequest(new Result { State = 0, Message = "修改失败" })); } }
/// <summary> /// 新增菜单 /// <para>当前登录用户的所有角色会自动分配菜单</para> /// </summary> public void AddMenu(ModuleElement model) { var loginContext = _auth.GetCurrentUser(); if (loginContext == null) { throw new CommonException("登录已过期", Define.INVALID_TOKEN); } UnitWork.ExecuteWithTransaction(() => { UnitWork.Add(model); //当前登录用户的所有角色自动分配菜单 loginContext.Roles.ForEach(u => { _revelanceApp.Assign(new AssignReq { type = Define.ROLEELEMENT, firstId = u.Id, secIds = new[] { model.Id } }); }); UnitWork.Save(); }); }
public void AddOrUpdate(ModuleElement model) { var newbtn = new ModuleElement(); model.CopyTo(newbtn); _moduleEleManService.AddOrUpdate(newbtn); }
public async Task <ActionResult> Module(ModuleElementViewModel model) { var module = new ModuleElement { Attr = model.Attr, ModuleId = model.ModuleId, Remark = model.Remark, Name = model.Name, Script = model.Script }; List <SelectListItem> MyList = new List <SelectListItem>(); var moduleName = await this._moduleRepository.GetEntityListAsync <Module>(null); foreach (var item in moduleName) { var select = new SelectListItem(); select.Text = item.Name; select.Value = item.Id.ToString(); MyList.Add(select); } ViewBag.ModuleName = MyList; var result = await this._moduleRepository.InsertModule(module); var entity = await this._moduleRepository.FindEntityAsync <Module>(t => t.Id == 1); var entities = entity.ToModel(); return(View()); }
private ModuleElement ParseModule(string item) { ModuleElement mod = new ModuleElement(); ParseGeneric(mod, item); return(mod); }
public void AddOrUpdate(ModuleElement model) { if (model.Id == 0) { _unitWork.Add(model); } else { _unitWork.Update(model); } }
public ActionResult Add(ModuleElementEdit moduleElementEdit) { ModuleElement moduleElement = Mapper.Map <ModuleElement>(moduleElementEdit); moduleElement = ModuleElementServices.AddEntity(moduleElement); return(Ok(new Result <int> { State = 1, Message = "添加成功", Data = moduleElement.ID })); }
public void AddOrUpdate(ModuleElement model) { if (model.Id == Guid.Empty) { _unitWork.Add(model); } else { _unitWork.Update(model); } _unitWork.Save(); }
public string AddOrEditButton(ModuleElement button) { try { _app.AddOrUpdate(button); } catch (DbEntityValidationException e) { _bjuiResponse.statusCode = "300"; _bjuiResponse.message = e.Message; } return(JsonHelper.Instance.Serialize(_bjuiResponse)); }
public string AddOrEditButton(ModuleElement button) { try { _app.AddOrUpdate(button); } catch (DbEntityValidationException e) { Result.Status = false; Result.Message = e.Message; } return(JsonHelper.Instance.Serialize(Result)); }
public Response UpdateMenu(ModuleElement obj) { var result = new Response(); try { _app.UpdateMenu(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return(result); }
public string UpdateMenu(ModuleElement model) { try { _app.UpdateMenu(model); } catch (Exception ex) { Result.Code = 500; Result.Message = ex.Message; } return(JsonHelper.Instance.Serialize(Result)); }
public void AddOrUpdate(ModuleElement model) { var newbtn = new ModuleElement(); model.CopyTo(newbtn); if (model.Id == 0) { _repository.Add(newbtn); } else { _repository.Update(newbtn); } }
public virtual ModuleElement RewriteModuleElement(ModuleElement element) { if (element is DeclarationModuleElement) { return(RewriteDeclarationModuleElement((DeclarationModuleElement)element)); } else if (element is RawModuleElement) { return(RewriteRawModuleElement((RawModuleElement)element)); } else { throw NonVisitable(element, "module element {0}"); } }
public async Task <ResultJson> InsertModule(ModuleElement module) { ResultJson msg = new ResultJson(); try { var entity = this._dbContext.Set <ModuleElement>().Add(module); var result = await this._dbContext.SaveChangeAsync(); } catch (Exception ex) { msg.Message = ex.Message; } return(msg); }
public virtual void Visit(ModuleElement element) { if (element is DeclarationModuleElement) { Visit((DeclarationModuleElement)element); } else if (element is RawModuleElement) { VisitRawModuleElement((RawModuleElement)element); } else { NonVisitable(element, "module element {0}"); } }
public ActionResult Edit(ModuleElementEdit moduleElementEdit) { if (ModelState.IsValid) { ModuleElement moduleElement = ModuleElementServices .LoadFirst(r => r.ID == moduleElementEdit.ID.Value); if (moduleElement == null) { return(Json(new Result { State = 0, Message = "修改的角色不存在" })); } moduleElement = Mapper.Map(moduleElementEdit, moduleElement); if (ModuleElementServices.EditEntity(moduleElement)) { return(Json(new Result { State = 1, Message = "修改成功" })); } else { return(Json(new Result { State = 0, Message = "修改失败" })); } } else { IEnumerable <object> errors = ModelStateToJson(); return(Json(new Result <object> { State = 0, Message = "错误", Data = errors })); } }
public ActionResult Delete(int id) { ModuleElement moduleElement = ModuleElementServices .LoadFirst(u => u.ID == id); if (moduleElement == null) { return(NotFound(new Result { State = 0, Message = "模块元素不存在" })); } ModuleElementServices.DeleteEntity(moduleElement); return(Ok(new Result { State = 1, Message = "删除成功" })); }
private bool IsEmptyDeclaration(ModuleElement me) { var e = me as DeclarationModuleElement; if (e == null) { return(false); } if (e.Declaration != null) { return(IsEmptyDeclaration(e.Declaration)); } if (e.EnumDeclaration != null) { if (Exceptions.Contains(e.EnumDeclaration)) { return(false); } return(e.EnumDeclaration.Members.Count == 0); } return(false); }
public ActionResult Add(ModuleElementEdit moduleElementEdit) { if (ModelState.IsValid) { ModuleElement moduleElement = Mapper.Map <ModuleElement>(moduleElementEdit); ModuleElementServices.AddEntity(moduleElement); return(Json(new Result <int> { State = 1, Message = "添加成功", Data = moduleElement.ID })); } else { IEnumerable <object> errors = ModelStateToJson(); return(Json(new Result <object> { State = 0, Message = "错误", Data = errors })); } }
public void UpdateMenu(ModuleElement model) { UnitWork.Update <ModuleElement>(model); UnitWork.Save(); }
public List <ModuleElement> GetUserMenus() { List <ModuleElement> elements = new List <ModuleElement>(); ModuleElement element = new ModuleElement() { DomId = "btnDel", Name = "删除", Attr = "", Script = "del()", Class = "layui-btn-danger", Icon = "", Remark = "刪除用户", Sort = 2, ModuleId = 2, Id = 2 }; elements.Add(element); element = new ModuleElement() { DomId = "btnEdit", Name = "编辑", Attr = "", Script = "edit()", Class = "layui-btn-normal", Icon = "", Remark = "编辑用户", Sort = 2, ModuleId = 2, Id = 21 }; elements.Add(element); element = new ModuleElement() { DomId = "btnAdd", Name = "添加", Attr = "", Script = "add()", Class = "layui-btn-normal", Icon = "", Remark = "添加用户", Sort = 2, ModuleId = 2, Id = 212 }; elements.Add(element); element = new ModuleElement() { DomId = "btnAccessRole", Name = "为用户分配角色", Attr = "", Script = "openUserRoleAccess(this)", Class = "layui-btn-normal", Icon = "", Remark = "为用户分配角色", Sort = 2, ModuleId = 2, Id = 211 }; elements.Add(element); element = new ModuleElement() { DomId = "btnRefresh", Name = "刷新", Attr = "", Script = "refresh()", Class = "layui-btn-normal", Icon = "", Remark = "刷新", Sort = 2, ModuleId = 2, Id = 2131 }; elements.Add(element); return(elements); }
public void AddMenu(ModuleElement model) { UnitWork.Add(model); UnitWork.Save(); }
public List <ModuleElement> GetOrgMenus() { List <ModuleElement> elements = new List <ModuleElement>(); ModuleElement element = new ModuleElement() { DomId = "btnAdd", Name = "添加", Attr = "", Script = "add()", Class = "layui-btn-normal", Icon = "", Remark = "添加部门", Sort = 2, ModuleId = 2, Id = 21 }; elements.Add(element); element = new ModuleElement() { DomId = "btnDel", Name = "删除", Attr = "", Script = "del()", Class = "layui-btn-danger", Icon = "", Remark = "刪除部门", Sort = 2, ModuleId = 2, Id = 210 }; elements.Add(element); //element = new ModuleElement() //{ // DomId = "btnDel", // Name = "删除", // Attr = "", // Script = "del()", // Class = "layui-btn-danger", // Icon = "", // Remark = "刪除部门", // Sort = 2, // ModuleId = 2, // Id = 212 //}; //elements.Add(element); element = new ModuleElement() { DomId = "btnEdit", Name = "编辑", Attr = "", Script = "edit()", Class = "layui-btn-normal", Icon = "", Remark = "编辑部门", Sort = 2, ModuleId = 2, Id = 213 }; elements.Add(element); element = new ModuleElement() { DomId = "btnRefresh", Name = "刷新", Attr = "", Script = "refresh()", Class = "layui-btn-normal", Icon = "", Remark = "刷新", Sort = 2, ModuleId = 2, Id = 2131 }; elements.Add(element); return(elements); }
protected void btnSubmit_Click(object sender, EventArgs e) { ClientScriptManager script = Page.ClientScript; Button btn = sender as Button; if (btn.Text == "Next" || hdnPrev.Value == "0") { string module = lbAvailableModules.SelectedItem.Value as string; BindFolderFilesDropDown(module); if (!script.IsClientScriptBlockRegistered(GetType(), "divShow1")) { script.RegisterClientScriptBlock(this.GetType(), "divShow1", "<script>$(function(){$('#div1').hide();$('#div2').show(); counter=1;$('#' + NewPackage.Settings.next).val('Next');});</script>"); } btn.Text = "Submit"; } else if (btn.Text == "Submit" && hdnPrev.Value != "0") { string rootPath = HostingEnvironment.ApplicationPhysicalPath; ModuleInfoPackage package = new ModuleInfoPackage(); package.Description = this.PackageDetails1.Description; package.Version = this.PackageDetails1.FirstVersion + "." + this.PackageDetails1.SecondVersion + "." + this.PackageDetails1.LastVersion; package.ReleaseNotes = this.PackageDetails1.ReleaseNotes; package.Owner = this.PackageDetails1.Owner; package.Organization = this.PackageDetails1.Organization; package.URL = this.PackageDetails1.Url; package.Email = this.PackageDetails1.Email; package.FriendlyName = this.txtfriendlyname.Text; package.ModuleName = this.txtmodulename.Text; package.BusinessControllerClass = this.txtbusinesscontrollerclass.Text; if (lbAvailableModules.SelectedItem != null) package.FolderName = lbAvailableModules.SelectedItem.Value as string; package.License = this.PackageDetails1.License; package.CompatibleVersions = this.txtcompatibleversions.Text; //Populate ModuleElement and add to package ModuleElement moduleElement = new ModuleElement(); moduleElement.FriendlyName = this.txtfriendlyname.Text; moduleElement.CacheTime = this.txtCacheTime.Text; moduleElement.Controls = GetControls(); package.ModuleElements.Add(moduleElement); package.FileNames.AddRange(GetSelectedItems(this.lstAssembly, Path.Combine(rootPath, "bin\\"))); package.FileNames.AddRange(GetSelectedItems(this.lstFolderFiles, Path.Combine(rootPath, "Modules\\" + package.FolderName + "\\"))); string tempFolderPath = rootPath + GetTempPath(); if (this.hdnInstallScriptFileName.Value != null && this.hdnInstallScriptFileName.Value.Length > 0) { string InstalltempPath = Path.Combine(tempFolderPath, hdnInstallScriptFileName.Value); StreamReader reader = new StreamReader(InstalltempPath); string InstallScript = reader.ReadToEnd(); reader.Close(); string InstallfilePath = tempFolderPath + package.Version + ".SqlDataProvider"; StreamWriter writer = File.CreateText(InstallfilePath); writer.Write(InstallScript); writer.Flush(); writer.Close(); writer.Dispose(); package.FileNames.Add(InstallfilePath); } else if (!string.IsNullOrEmpty(this.InstallScriptTxt.Text)) { try { string filePath = tempFolderPath + package.Version + ".SqlDataProvider"; StreamWriter writer = File.CreateText(filePath); writer.Write(this.InstallScriptTxt.Text); writer.Flush(); writer.Close(); writer.Dispose(); package.FileNames.Add(filePath); } catch (Exception ex) { throw ex; } } if (this.hdnUnInstallSQLFileName.Value != null && this.hdnUnInstallSQLFileName.Value.Length > 0) { string UnInstalltempPath = Path.Combine(tempFolderPath, hdnUnInstallSQLFileName.Value); StreamReader reader = new StreamReader(UnInstalltempPath); string UnInstallScript = reader.ReadToEnd(); reader.Close(); string UnInstallfilePath = tempFolderPath + "Uninstall.SqlDataProvider"; StreamWriter writer = File.CreateText(UnInstallfilePath); writer.Write(UnInstallScript); writer.Flush(); writer.Close(); writer.Dispose(); package.FileNames.Add(UnInstallfilePath); } else if (!string.IsNullOrEmpty(this.UnistallScriptTxt.Text)) { string filePath = tempFolderPath + "Uninstall.SqlDataProvider"; StreamWriter writer = File.CreateText(filePath); writer.Write(this.UnistallScriptTxt.Text); writer.Flush(); writer.Close(); writer.Dispose(); package.FileNames.Add(filePath); } if (!string.IsNullOrEmpty(this.hdnSrcZipFile.Value) && this.hdnSrcZipFile.Value.Trim().Length > 1) { package.FileNames.Add(Path.Combine(tempFolderPath, this.hdnSrcZipFile.Value)); } ModuleSfeWriter moduleWriter = new ModuleSfeWriter(package); try { moduleWriter.CreatePackage(package.FolderName, "SFE_" + package.FolderName, package.FileNames, this.Context.Response, tempFolderPath, package); if (script.IsClientScriptBlockRegistered(GetType(), "script1")) { script.RegisterClientScriptBlock(GetType(), "script1", "<script>$(function(){ counter=0;});</script>"); } } catch (Exception) { //ReturnBack(); } // ReturnBack(); } }
protected void btnSubmit_Click(object sender, EventArgs e) { ClientScriptManager script = Page.ClientScript; Button btn = sender as Button; if (btn.Text == "Next" || hdnPrev.Value == "0") { string module = lbAvailableModules.SelectedItem.Value as string; BindFolderFilesDropDown(module); if (!script.IsClientScriptBlockRegistered(GetType(), "divShow1")) { script.RegisterClientScriptBlock(this.GetType(), "divShow1", "<script>$(function(){$('#div1').hide();$('#div2').show(); counter=1;$('#' + NewPackage.Settings.next).val('Next');});</script>"); } btn.Text = "Submit"; } else if (btn.Text == "Submit" && hdnPrev.Value != "0") { string rootPath = HostingEnvironment.ApplicationPhysicalPath; ModuleInfoPackage package = new ModuleInfoPackage(); package.Description = this.PackageDetails1.Description; package.Version = this.PackageDetails1.FirstVersion + "." + this.PackageDetails1.SecondVersion + "." + this.PackageDetails1.LastVersion; package.ReleaseNotes = this.PackageDetails1.ReleaseNotes; package.Owner = this.PackageDetails1.Owner; package.Organization = this.PackageDetails1.Organization; package.URL = this.PackageDetails1.Url; package.Email = this.PackageDetails1.Email; package.FriendlyName = this.txtfriendlyname.Text; package.ModuleName = this.txtmodulename.Text; package.BusinessControllerClass = this.txtbusinesscontrollerclass.Text; if (lbAvailableModules.SelectedItem != null) { package.FolderName = lbAvailableModules.SelectedItem.Value as string; } package.License = this.PackageDetails1.License; package.CompatibleVersions = this.txtcompatibleversions.Text; //Populate ModuleElement and add to package ModuleElement moduleElement = new ModuleElement(); moduleElement.FriendlyName = this.txtfriendlyname.Text; moduleElement.CacheTime = this.txtCacheTime.Text; moduleElement.Controls = GetControls(package.FolderName); package.ModuleElements.Add(moduleElement); package.FileNames.AddRange(GetSelectedItems(this.lstAssembly, Path.Combine(rootPath, "bin\\"))); package.FileNames.AddRange(GetSelectedItems(this.lstFolderFiles, Path.Combine(rootPath, "Modules\\" + package.FolderName + "\\"))); string tempFolderPath = rootPath + GetTempPath(); if (this.hdnInstallScriptFileName.Value != null && this.hdnInstallScriptFileName.Value.Length > 0) { string InstalltempPath = Path.Combine(tempFolderPath, hdnInstallScriptFileName.Value); StreamReader reader = new StreamReader(InstalltempPath); string InstallScript = reader.ReadToEnd(); reader.Close(); string InstallfilePath = tempFolderPath + package.Version + ".SqlDataProvider"; StreamWriter writer = File.CreateText(InstallfilePath); writer.Write(InstallScript); writer.Flush(); writer.Close(); writer.Dispose(); package.FileNames.Add(InstallfilePath); } else if (!string.IsNullOrEmpty(this.InstallScriptTxt.Text)) { try { string filePath = tempFolderPath + package.Version + ".SqlDataProvider"; StreamWriter writer = File.CreateText(filePath); writer.Write(this.InstallScriptTxt.Text); writer.Flush(); writer.Close(); writer.Dispose(); package.FileNames.Add(filePath); } catch (Exception ex) { throw ex; } } if (this.hdnUnInstallSQLFileName.Value != null && this.hdnUnInstallSQLFileName.Value.Length > 0) { string UnInstalltempPath = Path.Combine(tempFolderPath, hdnUnInstallSQLFileName.Value); StreamReader reader = new StreamReader(UnInstalltempPath); string UnInstallScript = reader.ReadToEnd(); reader.Close(); string UnInstallfilePath = tempFolderPath + "Uninstall.SqlDataProvider"; StreamWriter writer = File.CreateText(UnInstallfilePath); writer.Write(UnInstallScript); writer.Flush(); writer.Close(); writer.Dispose(); package.FileNames.Add(UnInstallfilePath); } else if (!string.IsNullOrEmpty(this.UnistallScriptTxt.Text)) { string filePath = tempFolderPath + "Uninstall.SqlDataProvider"; StreamWriter writer = File.CreateText(filePath); writer.Write(this.UnistallScriptTxt.Text); writer.Flush(); writer.Close(); writer.Dispose(); package.FileNames.Add(filePath); } if (!string.IsNullOrEmpty(this.hdnSrcZipFile.Value) && this.hdnSrcZipFile.Value.Trim().Length > 1) { package.FileNames.Add(Path.Combine(tempFolderPath, this.hdnSrcZipFile.Value)); } ModuleSfeWriter moduleWriter = new ModuleSfeWriter(package); try { moduleWriter.CreatePackage(package.FolderName, "SFE_" + package.FolderName, package.FileNames, this.Context.Response, tempFolderPath, package); if (script.IsClientScriptBlockRegistered(GetType(), "script1")) { script.RegisterClientScriptBlock(GetType(), "script1", "<script>$(function(){ counter=0;});</script>"); } } catch (Exception) { //ReturnBack(); } // ReturnBack(); } }
public void AddMenu(ModuleElement model) { _moduleElementRepository.Add(model); UnitWork.Save(); }
public void UpdateMenu(ModuleElement model) { _moduleElementRepository.Update(model); UnitWork.Save(); }
/// <summary> ///异步验证 /// </summary> public static async Task DoValidationAsync(IModuleElementRespository moduleElementRespository, ModuleElement moduleElement, string validatorType) { var moduleElementValidator = new ModuleElementValidator(moduleElementRespository); var validatorReresult = await moduleElementValidator.DoValidateAsync(moduleElement, validatorType); if (!validatorReresult.IsValid) { throw new DomainException(validatorReresult); } }
/// <remarks> /// Loads the cboSource control list with locations of controls. /// </remarks> private void InstallManifest(string strManifest) { XmlDocument doc = new XmlDocument(); try { doc.Load(strManifest); XmlNode dnnRoot = doc.DocumentElement; foreach (XmlElement FolderElement in dnnRoot.SelectNodes("folders/folder")) { DesktopModuleController objDesktopModules = new DesktopModuleController(); DesktopModuleInfo objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = Null.NullInteger; objDesktopModule.ModuleName = XmlUtils.GetNodeValue(FolderElement, "modulename", ""); objDesktopModule.FolderName = XmlUtils.GetNodeValue(FolderElement, "foldername", ""); objDesktopModule.FriendlyName = XmlUtils.GetNodeValue(FolderElement, "friendlyname", ""); if (objDesktopModule.FolderName == "") { objDesktopModule.FolderName = objDesktopModule.ModuleName; } objDesktopModule.Description = XmlUtils.GetNodeValue(FolderElement, "description", ""); objDesktopModule.IsPremium = false; objDesktopModule.IsAdmin = false; objDesktopModule.Version = XmlUtils.GetNodeValue(FolderElement, "version", ""); objDesktopModule.BusinessControllerClass = XmlUtils.GetNodeValue(FolderElement, "businesscontrollerclass", ""); objDesktopModule.CompatibleVersions = XmlUtils.GetNodeValue(FolderElement, "compatibleversions", ""); objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule); foreach (XmlElement ModuleElement in FolderElement.SelectNodes("modules/module")) { ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); ModuleDefinitionInfo objModuleDefinition = new ModuleDefinitionInfo(); objModuleDefinition.ModuleDefID = Null.NullInteger; objModuleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; objModuleDefinition.FriendlyName = XmlUtils.GetNodeValue(ModuleElement, "friendlyname", ""); objModuleDefinition.DefaultCacheTime = XmlUtils.GetNodeValueInt(ModuleElement, "cachetime", 0); objModuleDefinition.ModuleDefID = objModuleDefinitions.AddModuleDefinition(objModuleDefinition); foreach (XmlElement ControlElement in ModuleElement.SelectNodes("controls/control")) { ModuleControlController objModuleControls = new ModuleControlController(); ModuleControlInfo objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = Null.NullInteger; objModuleControl.ModuleDefID = objModuleDefinition.ModuleDefID; objModuleControl.ControlKey = XmlUtils.GetNodeValue(ControlElement, "key", ""); objModuleControl.ControlSrc = XmlUtils.GetNodeValue(ControlElement, "src", ""); objModuleControl.ControlTitle = XmlUtils.GetNodeValue(ControlElement, "title", ""); switch (XmlUtils.GetNodeValue(ControlElement, "type", "")) { case "Anonymous": objModuleControl.ControlType = SecurityAccessLevel.Anonymous; break; case "View": objModuleControl.ControlType = SecurityAccessLevel.View; break; case "Edit": objModuleControl.ControlType = SecurityAccessLevel.Edit; break; case "Admin": objModuleControl.ControlType = SecurityAccessLevel.Admin; break; case "Host": objModuleControl.ControlType = SecurityAccessLevel.Host; break; } objModuleControl.HelpURL = XmlUtils.GetNodeValue(ControlElement, "helpurl", ""); objModuleControl.IconFile = XmlUtils.GetNodeValue(ControlElement, "iconfile", ""); objModuleControl.ViewOrder = XmlUtils.GetNodeValueInt(ControlElement, "vieworder", 0); objModuleControls.AddModuleControl(objModuleControl); } } // update interfaces UpdateModuleInterfaces(objDesktopModule.BusinessControllerClass); } Response.Redirect(Globals.NavigateURL(), true); } catch { // can not open manifest UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("InstallManifest.ErrorMessage", this.LocalResourceFile), ModuleMessageType.RedError); } }
public Report Parse(string file) { var coverageReport = new Report { ModuleElements = new List <ModuleElement>() }; var report = XDocument.Load(file); var modules = report.Root.Elements("Modules").SelectMany(x => x.Elements("Module")); foreach (var module in modules) { var moduleInfo = new ModuleElement { FilesList = GetProjectFilesList(module.Element("Files")?.Elements("File")), ClassCoverages = new List <ClassCoverage>() }; var classes = module.Element("Classes").Elements("Class"); foreach (var projectClass in classes) { var summaryElem = projectClass.Element("Summary"); if (summaryElem == null) { continue; } var coverageInfo = new ClassCoverage { SequenceCoverage = Convert.ToDouble(summaryElem.Attribute("sequenceCoverage").Value, CultureInfo.InvariantCulture) }; int?fileId = null; var methodCoverage = new List <LineCoverage>(); var methods = projectClass.Element("Methods"); if (methods != null && methods.Elements("Method").Any()) { foreach (var method in methods.Elements("Method")) { if (method.Element("FileRef") == null) { continue; } fileId = Convert.ToInt32(method.Element("FileRef").Attribute("uid").Value); var lines = method.Element("SequencePoints"); if (lines != null && lines.Elements("SequencePoint").Any()) { foreach (var line in lines.Elements("SequencePoint")) { methodCoverage.Add(new LineCoverage { LineNumber = Convert.ToInt32(line.Attribute("sl").Value), VisitCount = Convert.ToInt32(line.Attribute("vc").Value) }); } } } } if (fileId != null && moduleInfo.FilesList.ContainsKey(fileId.Value)) { coverageInfo.FileId = fileId.Value; coverageInfo.CoveredLines = methodCoverage.ToList(); moduleInfo.ClassCoverages.Add(coverageInfo); } } coverageReport.ModuleElements.Add(moduleInfo); } return(coverageReport); }