public StructuredDataStructurePreviewModel fill(long dataStructureId) { using (DataStructureManager dataStructureManager = new DataStructureManager()) { StructuredDataStructure datastructure = dataStructureManager.StructuredDataStructureRepo.Get(dataStructureId); VariablePreview variablePreview = new VariablePreview(); if (datastructure != null) { foreach (Variable v in DataStructureIO.getOrderedVariables(datastructure)) { v.Unit = v.Unit ?? new Unit(); v.DataAttribute = v.DataAttribute ?? new DataAttribute(); v.DataAttribute.DataType = v.DataAttribute.DataType ?? new DataType(); variablePreview = new VariablePreview(); variablePreview.Id = v.Id; variablePreview.Label = v.Label; variablePreview.Description = v.Description; variablePreview.isOptional = v.IsValueOptional; variablePreview.Unit = v.Unit.Name; variablePreview.DataType = v.DataAttribute.DataType.Name; variablePreview.SystemType = v.DataAttribute.DataType.SystemType; this.VariablePreviews.Add(variablePreview); } return(this); } else { return(new StructuredDataStructurePreviewModel()); } } }
public ActionResult deleteDataStructure(long Id, string cssId = "") { MessageModel DataStructureDeleteValidation = MessageModel.validateDataStructureDelete(Id); if (DataStructureDeleteValidation.hasMessage) { return(PartialView("_messageWindow", DataStructureDeleteValidation)); } else { DataStructureManager dataStructureManager = null; MissingValueManager missingValueManager = null; try { dataStructureManager = new DataStructureManager(); missingValueManager = new MissingValueManager(); var structureRepo = dataStructureManager.GetUnitOfWork().GetReadOnlyRepository <StructuredDataStructure>(); StructuredDataStructure structuredDataStructure = structureRepo.Get(Id); if (structuredDataStructure != null) // Javad: This one retrieves the entity withough using it, and then the next line agian fetches the same! { DataStructureIO.deleteTemplate(structuredDataStructure.Id); foreach (Variable v in structuredDataStructure.Variables) { List <MissingValue> missingValues = missingValueManager.Repo.Query(mv => mv.Variable.Id.Equals(v.Id)).ToList(); foreach (MissingValue mv in missingValues) { missingValueManager.Delete(mv); } dataStructureManager.RemoveVariableUsage(v); } dataStructureManager.DeleteStructuredDataStructure(structuredDataStructure); LoggerFactory.LogData(structuredDataStructure.Id.ToString(), typeof(DataStructure).Name, Vaiona.Entities.Logging.CrudState.Deleted); } else { var unStructureRepo = dataStructureManager.GetUnitOfWork().GetReadOnlyRepository <UnStructuredDataStructure>(); UnStructuredDataStructure unStructuredDataStructure = unStructureRepo.Get(Id); dataStructureManager.DeleteUnStructuredDataStructure(unStructuredDataStructure); LoggerFactory.LogData(unStructuredDataStructure.Id.ToString(), typeof(DataStructure).Name, Vaiona.Entities.Logging.CrudState.Deleted); } return(PartialView("_message", new MessageModel() { Message = "DataStructure" + Id + "deleted", hasMessage = false, CssId = "deleted" })); } finally { dataStructureManager.Dispose(); missingValueManager.Dispose(); } } }
public DataStructurePreviewModel fill(long dataStructureId) { if (dataStructureId > 0) { DataStructureManager dataStructureManager = null; try { dataStructureManager = new DataStructureManager(); if (dataStructureManager.StructuredDataStructureRepo.Get(dataStructureId) != null) { StructuredDataStructure dataStructure = dataStructureManager.StructuredDataStructureRepo.Get(dataStructureId); VariablePreviewStruct variablePreview; this.Id = dataStructure.Id; this.Name = dataStructure.Name; this.Description = dataStructure.Description; if (dataStructure.Datasets.Count > 0) { this.inUse = true; } foreach (Variable v in DataStructureIO.getOrderedVariables(dataStructure)) { variablePreview = new VariablePreviewStruct().fill(v); this.VariablePreviews.Add(variablePreview); } } else if (dataStructureManager.UnStructuredDataStructureRepo.Get(dataStructureId) != null) { UnStructuredDataStructure dataStructure = dataStructureManager.UnStructuredDataStructureRepo.Get(dataStructureId); this.Id = dataStructure.Id; this.Name = dataStructure.Name; this.Description = dataStructure.Description; this.VariablePreviews = null; if (dataStructure.Datasets.Count > 0) { this.inUse = true; } } return(this); } finally { dataStructureManager.Dispose(); } } else { return(new DataStructurePreviewModel()); } }
public ActionResult storeVariables(long Id, storeVariableStruct[] variables) { DataStructureManager dataStructureManager = null; DataContainerManager dataContainerManager = null; MissingValueManager missingValueManager = null; UnitManager um = null; try { dataStructureManager = new DataStructureManager(); missingValueManager = new MissingValueManager(); dataContainerManager = new DataContainerManager(); um = new UnitManager(); var structureRepo = dataStructureManager.GetUnitOfWork().GetReadOnlyRepository <StructuredDataStructure>(); StructuredDataStructure dataStructure = structureRepo.Get(Id); MessageModel returnObject = new MessageModel(); MessageModel messageModel = MessageModel.validateDataStructureInUse(dataStructure.Id, dataStructure); if (messageModel.hasMessage) { foreach (Variable v in dataStructure.Variables) { if (variables.Select(svs => svs.Id).ToList().Contains(v.Id)) { v.Description = variables.Where(svs => svs.Id == v.Id).FirstOrDefault().Description; dataStructure = dataStructureManager.UpdateStructuredDataStructure(dataStructure); } } return(PartialView("_messageWindow", messageModel)); } if (variables != null && variables.Any()) { Variable variable = new Variable(); List <long> order = new List <long>(); foreach (Variable v in dataStructure.Variables) { if (!variables.Select(svs => svs.Id).ToList().Contains(v.Id)) { List <MissingValue> missingValues = missingValueManager.Repo.Query(mv => mv.Variable.Id.Equals(v.Id)).ToList(); foreach (MissingValue mv in missingValues) { missingValueManager.Delete(mv); } dataStructureManager.RemoveVariableUsage(v); } } foreach (storeVariableStruct svs in variables.Where(svs => svs.Id == 0).ToList()) { if (svs.Lable == null) { svs.Lable = ""; } if (svs.Description == null) { svs.Description = ""; } DataAttribute dataAttribute = dataContainerManager.DataAttributeRepo.Get(svs.AttributeId); if (dataAttribute != null) { variable = dataStructureManager.AddVariableUsage(dataStructure, dataAttribute, svs.isOptional, svs.Lable.Trim(), null, null, svs.Description.Trim(), um.Repo.Get(svs.UnitId)); svs.Id = variable.Id; foreach (MissingValueStruct mvs in svs.MissingValues) { if (mvs.Id == 0) { if (String.IsNullOrEmpty(mvs.Placeholder)) { missingValueManager.Create(mvs.DisplayName, mvs.Description, variable); } else { missingValueManager.Create(mvs.DisplayName, mvs.Description, variable, mvs.Placeholder); } } } } else { returnObject = new MessageModel() { hasMessage = true, Message = "Not all Variables are stored.", CssId = "0" }; } } //dataStructure = structureRepo.Get(Id); // Javad: why it is needed? variables = variables.Where(v => v.Id != 0).ToArray(); MissingValue missingValue = new MissingValue(); foreach (storeVariableStruct svs in variables.Where(svs => svs.Id != 0).ToList()) { if (svs.Lable == null) { svs.Lable = ""; } if (svs.Description == null) { svs.Description = ""; } variable = dataStructure.Variables.Where(v => v.Id == svs.Id).FirstOrDefault(); if (variable != null) { variable.Label = svs.Lable.Trim(); variable.Description = svs.Description.Trim(); variable.Unit = um.Repo.Get(svs.UnitId); variable.DataAttribute = dataContainerManager.DataAttributeRepo.Get(svs.AttributeId); variable.IsValueOptional = svs.isOptional; List <MissingValue> missingValues = missingValueManager.Repo.Query(mv => mv.Variable.Id.Equals(svs.Id)).ToList(); foreach (MissingValue mv in missingValues) { if (!svs.MissingValues.Select(mvs => mvs.Id).Contains(mv.Id)) { missingValueManager.Delete(mv); } } foreach (MissingValueStruct mvs in svs.MissingValues) { if (mvs.Id == 0) { if (String.IsNullOrEmpty(mvs.Placeholder)) { missingValueManager.Create(mvs.DisplayName, mvs.Description, variable); } else { missingValueManager.Create(mvs.DisplayName, mvs.Description, variable, mvs.Placeholder); } } else if (mvs.Id > 0) { missingValue = missingValues.Where(mv => mv.Id.Equals(mvs.Id)).FirstOrDefault(); if (missingValue != null) { missingValue.DisplayName = mvs.DisplayName; missingValue.Description = mvs.Description; missingValue.Placeholder = mvs.Placeholder; missingValueManager.Update(missingValue); } } } } } dataStructure = dataStructureManager.UpdateStructuredDataStructure(dataStructure); DataStructureIO.setVariableOrder(dataStructure, variables.Select(svs => svs.Id).ToList()); } else { foreach (Variable v in dataStructure.Variables) { List <MissingValue> missingValues = missingValueManager.Repo.Query(mv => mv.Variable.Id.Equals(v.Id)).ToList(); foreach (MissingValue mv in missingValues) { missingValueManager.Delete(mv); } dataStructureManager.RemoveVariableUsage(v); } } LoggerFactory.LogCustom("Variables for Data Structure " + Id + " stored."); return(Json(returnObject, JsonRequestBehavior.AllowGet)); } finally { dataStructureManager.Dispose(); dataContainerManager.Dispose(); um.Dispose(); missingValueManager.Dispose(); } }
public void GenerateSeedData() { FeatureManager featureManager = null; FeaturePermissionManager featurePermissionManager = new FeaturePermissionManager(); OperationManager operationManager = new OperationManager(); try { featureManager = new FeatureManager(); List <Feature> features = featureManager.FeatureRepository.Get().ToList(); Feature dataPlanning = features.FirstOrDefault(f => f.Name.Equals("Data Planning")); if (dataPlanning == null) { dataPlanning = featureManager.Create("Data Planning", "Data Planning Management"); } Feature datastructureFeature = features.FirstOrDefault(f => f.Name.Equals("Datastructure Management") && f.Parent != null && f.Parent.Id.Equals(dataPlanning.Id)); if (datastructureFeature == null) { datastructureFeature = featureManager.Create("Datastructure Management", "Datastructure Management", dataPlanning); } if (!operationManager.Exists("RPM", "DataStructureSearch", "*")) { operationManager.Create("RPM", "DataStructureSearch", "*", datastructureFeature); } if (!operationManager.Exists("RPM", "DataStructureEdit", "*")) { operationManager.Create("RPM", "DataStructureEdit", "*", datastructureFeature); } if (!operationManager.Exists("RPM", "Structures", "*")) { operationManager.Create("RPM", "Structures", "*", datastructureFeature); } if (!operationManager.Exists("RPM", "DataStructureIO", "*")) { operationManager.Create("RPM", "DataStructureIO", "*", datastructureFeature); } Feature atributeFeature = features.FirstOrDefault(f => f.Name.Equals("Variable Template Management") && f.Parent != null && f.Parent.Id.Equals(dataPlanning.Id)); if (atributeFeature == null) { atributeFeature = featureManager.Create("Variable Template Management", "Variable Template Management", dataPlanning); } ; if (!operationManager.Exists("RPM", "DataAttribute", "*")) { operationManager.Create("RPM", "DataAttribute", "*", atributeFeature); } Feature unitFeature = features.FirstOrDefault(f => f.Name.Equals("Unit Management") && f.Parent != null && f.Parent.Id.Equals(dataPlanning.Id)); if (unitFeature == null) { unitFeature = featureManager.Create("Unit Management", "Unit Management", dataPlanning); } if (!operationManager.Exists("RPM", "Unit", "*")) { operationManager.Create("RPM", "Unit", "*", unitFeature); } Feature dataTypeFeature = features.FirstOrDefault(f => f.Name.Equals("Data Type Management") && f.Parent != null && f.Parent.Id.Equals(dataPlanning.Id)); if (dataTypeFeature == null) { dataTypeFeature = featureManager.Create("Data Type Management", "Data Type Management", dataPlanning); } if (!operationManager.Exists("RPM", "Home", "*")) { operationManager.Create("RPM", "Home", "*", dataTypeFeature); } if (!operationManager.Exists("RPM", "Help", "*")) { operationManager.Create("RPM", "Help", "*"); } Feature api = features.FirstOrDefault(f => f.Name.Equals("API") && f.Parent != null && f.Parent.Id.Equals(dataPlanning.Id)); if (api == null) { api = featureManager.Create("API", "API", dataPlanning); } if (!operationManager.Exists("API", "Structures", "*")) { operationManager.Create("API", "Structures", "*", api); } //set api public featurePermissionManager.Create(null, api.Id, Security.Entities.Authorization.PermissionType.Grant); } finally { featureManager.Dispose(); featurePermissionManager.Dispose(); operationManager.Dispose(); } //create seed data from csv files MappingReader mappingReader = new MappingReader(); AttributeCreator attributeCreator = new AttributeCreator(); string filePath = AppConfiguration.GetModuleWorkspacePath("RPM"); // read data types from csv file DataTable mappedDataTypes = mappingReader.readDataTypes(filePath); // create read data types in bpp attributeCreator.CreateDataTypes(ref mappedDataTypes); //// read dimensions from csv file DataTable mappedDimensions = mappingReader.readDimensions(filePath); // create dimensions in bpp attributeCreator.CreateDimensions(ref mappedDimensions); //// read units from csv file DataTable mappedUnits = mappingReader.readUnits(filePath); // create read units in bpp attributeCreator.CreateUnits(ref mappedUnits); //// read attributes from csv file DataTable mappedAttributes = mappingReader.readAttributes(filePath); // free memory mappedDataTypes.Clear(); mappedDimensions.Clear(); // create read attributes in bpp attributeCreator.CreateAttributes(ref mappedAttributes); createResearchPlan(); //createSeedDataTypes(); //createSIUnits(); //createEmlDatasetAdv(); //createABCD(); //ImportSchema("Basic ABCD", "ABCD_2.06.XSD","Dataset","BExIS.Dlm.Entities.Data.Dataset"); //ImportSchema("Basic Eml", "eml.xsd","dataset","BExIS.Dlm.Entities.Data.Dataset"); DataStructureManager dsm = null; try { dsm = new DataStructureManager(); foreach (StructuredDataStructure sds in dsm.StructuredDataStructureRepo.Get()) { DataStructureIO.convertOrder(sds); } } finally { dsm.Dispose(); } }
public DataStructurePreviewModel fill(long dataStructureId) { if (dataStructureId > 0) { DataStructureManager dataStructureManager = null; try { dataStructureManager = new DataStructureManager(); if (dataStructureManager.StructuredDataStructureRepo.Get(dataStructureId) != null) { StructuredDataStructure dataStructure = dataStructureManager.StructuredDataStructureRepo.Get(dataStructureId); VariablePreviewStruct variablePreview; this.Id = dataStructure.Id; this.Name = dataStructure.Name; this.Description = dataStructure.Description; if (dataStructure.Datasets.Any()) { DatasetManager datasetManager = null; try { datasetManager = new DatasetManager(); foreach (Dataset d in dataStructure.Datasets) { if (datasetManager.RowAny(d.Id)) { this.inUse = true; break; } else { foreach (DatasetVersion dv in d.Versions) { if (datasetManager.GetDatasetVersionEffectiveTuples(dv).Any()) { this.inUse = true; break; } } } } } finally { datasetManager.Dispose(); } } foreach (Variable v in DataStructureIO.getOrderedVariables(dataStructure)) { variablePreview = new VariablePreviewStruct().fill(v); this.VariablePreviews.Add(variablePreview); } } else if (dataStructureManager.UnStructuredDataStructureRepo.Get(dataStructureId) != null) { UnStructuredDataStructure dataStructure = dataStructureManager.UnStructuredDataStructureRepo.Get(dataStructureId); this.Id = dataStructure.Id; this.Name = dataStructure.Name; this.Description = dataStructure.Description; this.VariablePreviews = null; if (dataStructure.Datasets.Any()) { this.inUse = true; } } return(this); } finally { dataStructureManager.Dispose(); } } else { return(new DataStructurePreviewModel()); } }
public ActionResult copyDataStructure(long Id, bool isStructured, string Name = "", string Description = "", string cssId = "") { Name = Server.UrlDecode(Name); Description = Server.UrlDecode(Description); DataStructureManager dataStructureManager = null; try { dataStructureManager = new DataStructureManager(); if (!isStructured) { UnStructuredDataStructure dataStructure = dataStructureManager.GetUnitOfWork().GetReadOnlyRepository <UnStructuredDataStructure>().Get(Id); if (dataStructure != null) { if (Name == "") { Name = dataStructure.Name + " - Copy"; } if (Description == "" && dataStructure.Description != null) { Description = dataStructure.Description; } LoggerFactory.LogCustom("Copy Data Structure" + Id); return(createDataStructure(0, Name.Trim(), isStructured, Description.Trim(), cssId)); } } else { StructuredDataStructure dataStructure = dataStructureManager.GetUnitOfWork().GetReadOnlyRepository <StructuredDataStructure>().Get(Id); if (dataStructure != null) { if (Name == "") { Name = dataStructure.Name + " - Copy"; } if (Description == "" && dataStructure.Description != null) { Description = dataStructure.Description; } MessageModel messageModel = storeDataStructure(0, Name.Trim(), isStructured, Description.Trim(), cssId); List <long> order = new List <long>(); Variable variable = new Variable(); if (!messageModel.hasMessage) { StructuredDataStructure dataStructureCopy = dataStructureManager.GetUnitOfWork().GetReadOnlyRepository <StructuredDataStructure>().Get(Convert.ToInt64(messageModel.Message)); dataStructureManager.GetUnitOfWork().GetReadOnlyRepository <StructuredDataStructure>().LoadIfNot(dataStructureCopy.Variables); foreach (Variable v in DataStructureIO.getOrderedVariables(dataStructure)) { variable = dataStructureManager.AddVariableUsage(dataStructureCopy, v.DataAttribute, v.IsValueOptional, v.Label.Trim(), v.DefaultValue, v.MissingValue, v.Description.Trim(), v.Unit); order.Add(variable.Id); } DataStructureIO.setVariableOrder(dataStructureCopy, order); } LoggerFactory.LogCustom("Copy Data Structure" + Id); return(PartialView("_message", messageModel)); } } return(PartialView("_message", new MessageModel())); } finally { dataStructureManager.Dispose(); } }
public ActionResult storeVariables(long Id, storeVariableStruct[] variables) { DataStructureManager dataStructureManager = null; DataContainerManager dataContainerManager = null; UnitManager um = null; try { dataStructureManager = new DataStructureManager(); var structureRepo = dataStructureManager.GetUnitOfWork().GetReadOnlyRepository <StructuredDataStructure>(); StructuredDataStructure dataStructure = structureRepo.Get(Id); MessageModel returnObject = new MessageModel(); MessageModel messageModel = MessageModel.validateDataStructureInUse(dataStructure.Id, dataStructure); if (messageModel.hasMessage) { foreach (Variable v in dataStructure.Variables) { if (variables.Select(svs => svs.Id).ToList().Contains(v.Id)) { v.Description = variables.Where(svs => svs.Id == v.Id).FirstOrDefault().Description; dataStructure = dataStructureManager.UpdateStructuredDataStructure(dataStructure); } } return(PartialView("_messageWindow", messageModel)); } if (variables != null && variables.Count() > 0) { Variable variable = new Variable(); List <long> order = new List <long>(); foreach (Variable v in dataStructure.Variables) { if (!variables.Select(svs => svs.Id).ToList().Contains(v.Id)) { dataStructureManager.RemoveVariableUsage(v); } } foreach (storeVariableStruct svs in variables.Where(svs => svs.Id == 0).ToList()) { if (svs.Lable == null) { svs.Lable = ""; } if (svs.Description == null) { svs.Description = ""; } try { dataContainerManager = new DataContainerManager(); DataAttribute dataAttribute = dataContainerManager.DataAttributeRepo.Get(svs.AttributeId); if (dataAttribute != null) { try { um = new UnitManager(); variable = dataStructureManager.AddVariableUsage(dataStructure, dataAttribute, svs.isOptional, svs.Lable.Trim(), null, null, svs.Description.Trim(), um.Repo.Get(svs.UnitId)); svs.Id = variable.Id; } finally { um.Dispose(); } } else { returnObject = new MessageModel() { hasMessage = true, Message = "Not all Variables are stored.", CssId = "0" }; } } finally { // Javad: would be better to conctruct and dispose this object outside of the loop dataContainerManager.Dispose(); } } dataStructure = structureRepo.Get(Id); // Javad: why it is needed? variables = variables.Where(v => v.Id != 0).ToArray(); foreach (storeVariableStruct svs in variables.Where(svs => svs.Id != 0).ToList()) { if (svs.Lable == null) { svs.Lable = ""; } if (svs.Description == null) { svs.Description = ""; } variable = dataStructure.Variables.Where(v => v.Id == svs.Id).FirstOrDefault(); if (variable != null) { variable.Label = svs.Lable.Trim(); variable.Description = svs.Description.Trim(); try { um = new UnitManager(); dataContainerManager = new DataContainerManager(); variable.Unit = um.Repo.Get(svs.UnitId); variable.DataAttribute = dataContainerManager.DataAttributeRepo.Get(svs.AttributeId); variable.IsValueOptional = svs.isOptional; } finally { um.Dispose(); // Javad: would be better to conctruct and dipose these objects outside of the loop dataContainerManager.Dispose(); } } } dataStructure = dataStructureManager.UpdateStructuredDataStructure(dataStructure); DataStructureIO.setVariableOrder(dataStructure, variables.Select(svs => svs.Id).ToList()); } else { foreach (Variable v in dataStructure.Variables) { dataStructureManager.RemoveVariableUsage(v); } } LoggerFactory.LogCustom("Variables for Data Structure " + Id + " stored."); return(Json(returnObject, JsonRequestBehavior.AllowGet)); } finally { dataStructureManager.Dispose(); dataContainerManager.Dispose(); um.Dispose(); } }