public IErrorsInfo RemoveChildEntities(int EntityID) { try { // CurrentEntity = CurrentView.Entity[EntityListIndex(ViewID, EntityID)]; var ls = DataView.Entities.Where(x => x.ParentId == EntityID); foreach (EntityStructure item in ls.ToList()) { if (DataView.Entities.Where(y => y.ParentId == item.Id).Any()) { RemoveChildEntities(item.Id); } DataView.Entities.Remove(DataView.Entities[EntityListIndex(item.Id)]); EntitiesNames.Remove(DataView.Entities[EntityListIndex(item.Id)].EntityName); } DMEEditor.AddLogMessage("Success", "Removed Child entities", DateTime.Now, 0, null, Errors.Ok); } catch (Exception ex) { string mes = "Could not Remove Child entities"; DMEEditor.AddLogMessage(ex.Message, mes, DateTime.Now, -1, mes, Errors.Failed); }; return(DMEEditor.ErrorObject); }
public int GenerateDataView(IDataSource conn, string tablename, string SchemaName, string Filterparamters) { //int maxcnt; DMEEditor.ErrorObject.Flag = Errors.Ok; List <ChildRelation> ds = conn.GetChildTablesList(tablename, SchemaName, Filterparamters); //if (DataView.Entities.Count == 0) //{ // EntityStructure viewheader = new EntityStructure() { Id = NextHearId(), EntityName = DataView.ViewName }; // viewheader.DataSourceID = conn.DatasourceName; // viewheader.EntityName = DataView.ViewName.ToUpper(); // viewheader.ParentId = 0; // viewheader.ViewID = DataView.ViewID; // DataView.Entities.Add(viewheader); //} // maxcnt = DataView.Entities.Max(m => m.Id); EntityStructure maintab = new EntityStructure() { Id = NextHearId(), EntityName = tablename }; maintab.DataSourceID = conn.DatasourceName; maintab.EntityName = tablename.ToUpper(); maintab.ViewID = DataView.ViewID; maintab.DatasourceEntityName = tablename; maintab.ParentId = 0; DataView.Entities.Add(maintab); EntitiesNames.Add(maintab.EntityName); if (ds != null && ds.Count > 0) { // var tb = ds.Tables[0]; //------------------------------- // Create Parent Record First //------------------------------- if (ds.Count > 0) { foreach (ChildRelation r in ds) { EntityStructure a; a = SetupEntityInView(DataView, DataView.Entities, r.child_table, tablename, r.child_column, r.parent_column, maintab.Id, conn.DatasourceName); } } } return(maintab.Id); }
public int AddEntitytoDataView(EntityStructure maintab) { DMEEditor.ErrorObject.Flag = Errors.Ok; string tablename = maintab.DatasourceEntityName; try { maintab.Id = NextHearId(); maintab.ViewID = 0; if (maintab.ParentId == -1) { maintab.ParentId = 0; } //--- check entity already exist , if it does change Entity Name if (CheckEntityExist(maintab.DatasourceEntityName)) { int cnt = EntitiesNames.Where(p => p.Equals(maintab.DatasourceEntityName, StringComparison.OrdinalIgnoreCase)).Count() + 1; maintab.EntityName = maintab.DatasourceEntityName + "_" + cnt; } DataView.Entities.Add(maintab); EntitiesNames.Add(maintab.EntityName); IDataSource entityds = DMEEditor.GetDataSource(maintab.DataSourceID); if (entityds != null && entityds.Category == DatasourceCategory.RDBMS) { List <ChildRelation> ds = entityds.GetChildTablesList(maintab.DatasourceEntityName, entityds.Dataconnection.ConnectionProp.SchemaName, null); if (ds != null && ds.Count > 0) { // var tb = ds.Tables[0]; //------------------------------- // Create Parent Record First //------------------------------- if (ds.Count > 0) { foreach (ChildRelation r in ds) { EntityStructure a; a = SetupEntityInView(DataView, DataView.Entities, r.child_table, maintab.DatasourceEntityName, r.child_column, r.parent_column, maintab.Id, entityds.DatasourceName); } } } } return(maintab.Id); } catch (Exception) { return(-1); } }
private void SmartDetect(string filename) { var detector = new FileHelpers.Detection.SmartFormatDetector(); var formats = detector.DetectFileFormat(filename); foreach (var format in formats) { Console.WriteLine("Format Detected, confidence:" + format.Confidence + "%"); var delimited = format.ClassBuilderAsDelimited; Console.WriteLine(" Delimiter:" + delimited.Delimiter); Console.WriteLine(" Fields:"); EntityStructure entityData = new EntityStructure(); string sheetname; sheetname = FileName; entityData.Viewtype = ViewType.File; entityData.DatabaseType = DataSourceType.Text; entityData.DataSourceID = FileName; entityData.DatasourceEntityName = FileName; entityData.Caption = FileName; entityData.EntityName = FileName; List <EntityField> Fields = new List <EntityField>(); int y = 0; foreach (var field in delimited.Fields) { Console.WriteLine(" " + field.FieldName + ": " + field.FieldType); EntityField f = new EntityField(); // f.tablename = sheetname; f.fieldname = field.FieldName; f.fieldtype = field.FieldType.ToString(); f.ValueRetrievedFromParent = false; f.EntityName = sheetname; f.FieldIndex = y; Fields.Add(f); y += 1; } entityData.Fields = new List <EntityField>(); entityData.Fields.AddRange(Fields); Entities.Clear(); EntitiesNames.Clear(); EntitiesNames.Add(filename); Entities.Add(entityData); } }
public int AddEntityAsChild(IDataSource conn, string tablename, string SchemaName, string Filterparamters, int viewindex, int ParentTableIndex) { DMEEditor.ErrorObject.Flag = Errors.Ok; List <ChildRelation> ds = conn.GetChildTablesList(tablename, SchemaName, Filterparamters); EntityStructure maintab = new EntityStructure() { Id = NextHearId(), EntityName = tablename }; maintab.DataSourceID = conn.DatasourceName; maintab.EntityName = tablename; maintab.ViewID = DataView.ViewID; maintab.ParentId = ParentTableIndex; maintab.DatasourceEntityName = tablename; if (CheckEntityExist(maintab.DatasourceEntityName)) { int cnt = EntitiesNames.Where(p => p.Equals(maintab.DatasourceEntityName, StringComparison.OrdinalIgnoreCase)).Count(); maintab.EntityName = maintab.DatasourceEntityName + "_" + cnt + 1; } DataView.Entities.Add(maintab); EntitiesNames.Add(maintab.EntityName); if (ds != null && ds.Count > 0) { //var tb = ds.Tables[0]; //------------------------------- // Create Parent Record First //------------------------------- if (ds.Count > 0) { foreach (ChildRelation r in ds) { EntityStructure a; a = SetupEntityInView(DataView, DataView.Entities, r.child_table, maintab.DatasourceEntityName, r.child_column, r.parent_column, maintab.Id, conn.DatasourceName); } } } return(maintab.Id); }
public IErrorsInfo RemoveEntity(int EntityID) { DMEEditor.ErrorObject.Flag = Errors.Ok; try { foreach (EntityStructure item in DataView.Entities.Where(x => x.ParentId == EntityID).ToList()) { RemoveEntity(item.Id); } DataView.Entities.Remove(DataView.Entities[EntityListIndex(EntityID)]); EntitiesNames.Remove(DataView.Entities[EntityListIndex(EntityID)].EntityName); } catch (Exception ex) { DMEEditor.AddLogMessage("Fail", ex.Message, DateTime.Now, -1, "", Errors.Failed); } return(DMEEditor.ErrorObject); }
public List <string> GetEntitesList() { EntitiesNames.Clear(); EntitiesNames.Add(DatasourceName); return(EntitiesNames); }
public List <string> GetEntitesList() { try { //---------------Get Categories---------------- - if (Entities.Count == 0) { DatasourceEntities f = DMEEditor.ConfigEditor.LoadDataSourceEntitiesValues(DatasourceName); if (f != null) { Entities = f.Entities; } } if (Entities == null || Entities.Count() == 0) { string retval = GetCategoriesDataAsync("GetCategories", @"/category/?api_key=@apikey&category_id=371").Result; var data = JObject.Parse(retval); var categorytk = data.SelectToken("category"); // Category categorys = JsonConvert.DeserializeObject<Category>(categorytk.ToString()); int i = 1; //foreach (var item in categorys.childcategories) //{ // EntityStructure x = new EntityStructure(); // x.ParentId = 0; // x.Id = i; // i += 1; // x.EntityName = item.name; // x.Viewtype = ViewType.Url; // x.Category = "WEBAPI"; // x.DataSourceID = DatasourceName; // x.CustomBuildQuery = $"/category/?api_key=7535ABF7E83252CB08E4300380DFA02D&category_id={item.category_id}"; // Entities.Add(x); // // retval = GetCategoriesDataAsync("GetCategories", x.CustomBuildQuery).Result; // var ou = GetCategoriesDataAsync("GetCategories", x.CustomBuildQuery); // ou.Wait(); // data = JObject.Parse(ou.Result); // categorytk = data.SelectToken("category"); //Category ct = JsonConvert.DeserializeObject<Category>(categorytk.ToString()); //foreach (Childcategory cc in ct.childcategories) //{ // createentities(cc, x); //} //} } EntitiesNames.Clear(); foreach (EntityStructure item in Entities) { item.CustomBuildQuery = item.CustomBuildQuery.Replace("api_key=7535ABF7E83252CB08E4300380DFA02D", "api_key=@apikey"); EntitiesNames.Add(item.EntityName); } DMEEditor.ConfigEditor.SaveDataSourceEntitiesValues(new DatasourceEntities { datasourcename = DatasourceName, Entities = Entities }); return(EntitiesNames); } catch (Exception ex) { DMEEditor.ConfigEditor.SaveDataSourceEntitiesValues(new DatasourceEntities { datasourcename = DatasourceName, Entities = Entities }); return(null); } }
public List <string> GetEntitesList() { try { if (!string.IsNullOrEmpty(Dataconnection.ConnectionProp.ApiKey)) { if (Entities.Count == 0) { DatasourceEntities f = DMEEditor.ConfigEditor.LoadDataSourceEntitiesValues(DatasourceName); if (f != null) { Entities = f.Entities; } } DMEEditor.AddLogMessage("Log Time", $"started International Energy Data {DateTime.Now}", DateTime.Now, 2134384, "International Energy Data", Errors.Ok); if (!Entities.Where(o => o.EntityName.Equals("International Energy Data", StringComparison.OrdinalIgnoreCase)).Any()) { CreateCategories(2134384, "International Energy Data", 0); } DMEEditor.AddLogMessage("Log Time", $"started Petroleum {DateTime.Now}", DateTime.Now, 2134384, "Petroleum", Errors.Ok); DMEEditor.ConfigEditor.SaveDataSourceEntitiesValues(new DatasourceEntities { datasourcename = DatasourceName, Entities = Entities }); if (!Entities.Where(o => o.EntityName.Equals("Petroleum", StringComparison.OrdinalIgnoreCase)).Any()) { CreateCategories(714755, "Petroleum", 0); } DMEEditor.AddLogMessage("Log Time", $"started Crude Oil Imports {DateTime.Now}", DateTime.Now, 2134384, "Crude Oil Imports", Errors.Ok); DMEEditor.ConfigEditor.SaveDataSourceEntitiesValues(new DatasourceEntities { datasourcename = DatasourceName, Entities = Entities }); if (!Entities.Where(o => o.EntityName.Equals("Crude Oil Imports", StringComparison.OrdinalIgnoreCase)).Any()) { CreateCategories(1292190, "Crude Oil Imports", 0); } DMEEditor.ConfigEditor.SaveDataSourceEntitiesValues(new DatasourceEntities { datasourcename = DatasourceName, Entities = Entities }); //string retval = GetCategoriesDataAsync("GetCategories", $"/category/?api_key={Dataconnection.ConnectionProp.ApiKey}&category_id=371").Result; // var data = JObject.Parse(retval); // var categorytk = data.SelectToken("category"); // Category categorys = JsonConvert.DeserializeObject<Category>(categorytk.ToString()); // int i = 1; // foreach (Childcategory item in categorys.childcategories) // { // if (!Entities.Where(o => o.EntityName.Equals(item.name, StringComparison.OrdinalIgnoreCase)).Any()) // { // EntityStructure x = new EntityStructure(); // x.ParentId = 0; // x.Id = i; // i += 1; // x.EntityName = item.name; // x.Viewtype = ViewType.Url; // x.DataSourceID = DatasourceName; // x.Category = "Category"; // x.CustomBuildQuery = $"/category/?api_key={Dataconnection.ConnectionProp.ApiKey}&category_id={item.category_id}"; // Entities.Add(x); // var ou = GetCategoriesDataAsync("GetCategories", x.CustomBuildQuery); // ou.Wait(); // data = JObject.Parse(ou.Result); // categorytk = data.SelectToken("category"); // Category ct = JsonConvert.DeserializeObject<Category>(categorytk.ToString()); // foreach (Childcategory cc in ct.childcategories) // { // CreateChildCategories(cc, x); // } // DMEEditor.ConfigEditor.SaveDataSourceEntitiesValues(new DatasourceEntities { datasourcename = DatasourceName, Entities = Entities }); // } // } //} EntitiesNames.Clear(); EntitiesNames = Entities.Select(p => p.EntityName).ToList(); DMEEditor.ConfigEditor.SaveDataSourceEntitiesValues(new DatasourceEntities { datasourcename = DatasourceName, Entities = Entities }); } //---------------Get Categories---------------- - if (!string.IsNullOrEmpty(Dataconnection.ConnectionProp.ApiKey)) { } return(EntitiesNames); } catch (Exception) { DMEEditor.ConfigEditor.SaveDataSourceEntitiesValues(new DatasourceEntities { datasourcename = DatasourceName, Entities = Entities }); return(null); } }
public int AddEntitytoDataView(IDataSource conn, string tablename, string SchemaName, string Filterparamters) { DMEEditor.ErrorObject.Flag = Errors.Ok; EntityStructure maintab; try { List <ChildRelation> ds = conn.GetChildTablesList(tablename, SchemaName, Filterparamters); maintab = new EntityStructure() { Id = NextHearId(), EntityName = tablename }; maintab.DataSourceID = conn.DatasourceName; maintab.EntityName = tablename.ToUpper(); maintab.ViewID = 0; maintab.ParentId = 0; maintab.DatabaseType = conn.DatasourceType; maintab.DatasourceEntityName = tablename; if (CheckEntityExist(maintab.DatasourceEntityName)) { int cnt = EntitiesNames.Where(p => p.Equals(maintab.DatasourceEntityName, StringComparison.OrdinalIgnoreCase)).Count(); maintab.EntityName = maintab.DatasourceEntityName + "_" + cnt + 1; } switch (maintab.DatabaseType) { case DataSourceType.Oracle: case DataSourceType.SqlServer: case DataSourceType.Mysql: case DataSourceType.SqlCompact: case DataSourceType.Postgre: case DataSourceType.Firebase: case DataSourceType.FireBird: case DataSourceType.Couchbase: case DataSourceType.RavenDB: case DataSourceType.MongoDB: case DataSourceType.CouchDB: case DataSourceType.VistaDB: case DataSourceType.DB2: case DataSourceType.SqlLite: maintab.Viewtype = ViewType.Table; break; case DataSourceType.Text: case DataSourceType.CSV: case DataSourceType.Xls: case DataSourceType.Json: case DataSourceType.xml: maintab.Viewtype = ViewType.File; break; case DataSourceType.WebService: case DataSourceType.OPC: maintab.Viewtype = ViewType.Url; break; default: break; } DataView.Entities.Add(maintab); EntitiesNames.Add(maintab.EntityName); if (ds != null && ds.Count > 0) { // var tb = ds.Tables[0]; //------------------------------- // Create Parent Record First //------------------------------- if (ds.Count > 0) { foreach (ChildRelation r in ds) { EntityStructure a; a = SetupEntityInView(DataView, DataView.Entities, r.child_table, tablename, r.child_column, r.parent_column, maintab.Id, conn.DatasourceName); } } } return(maintab.Id); } catch (Exception) { return(-1); } }