public ActionResult Save(ExtDB model) { DBEntities e = COREobject.i.Context; if (ModelState.IsValid) { // Záznam již existuje - pouze upravujeme if (!model.Id.Equals(null)) { ExtDB row = e.ExtDBs.Single(m => m.Id == model.Id); row.DB_Type = model.DB_Type; row.DB_Server = model.DB_Server; row.DB_Port = model.DB_Port; row.DB_Name = model.DB_Name; row.DB_User = model.DB_User; row.DB_Password = model.DB_Password; row.DB_Alias = model.DB_Alias; e.SaveChanges(); } else { e.ExtDBs.Add(model); e.SaveChanges(); } return(RedirectToRoute("Nexus", new { @action = "Index" })); } else { return(View("~/Views/Nexus/ExtDB/Form.cshtml", model)); } }
public override void InnerRun(Dictionary <string, object> vars, Dictionary <string, object> outputVars, Dictionary <string, object> InvertedInputVars, Message message) { COREobject core = COREobject.i; DBEntities context = core.Context; try { string dbName = (string)vars["dbName"]; string tableName = (string)vars["TableName"]; JToken data = (JToken)vars["Data"]; object where = (object)vars["Where"]; if (where == null || (where is String && string.IsNullOrEmpty((string)where))) { throw new Exception(string.Format("{0}: where is missing. You must provide where clausule or rethingDB item id", Name)); } ExtDB dbInfo = context.ExtDBs.Where(d => d.DB_Alias == dbName).SingleOrDefault(); if (dbInfo == null) { throw new Exception(string.Format("{0}: Integration was not found", Name)); } NexusExtDBBaseService service; switch (dbInfo.DB_Type) { case ExtDBType.RethinkDB: service = new NexusExtDBRethingService(dbInfo); break; default: service = (new NexusExtDBService(dbInfo.DB_Server, dbInfo.DB_Alias)).NewQuery(""); break; } NexusExtDBResult result = service.Update(tableName, data, where); if (result.Errors == 0) { outputVars["Result"] = result.Replaced; outputVars["Error"] = false; } else { outputVars["Result"] = result.FirstError; outputVars["Error"] = true; OmniusException.Log(result.FirstError, OmniusLogSource.Nexus, null, core.Application, core.User); } } catch (Exception e) { string errorMsg = e.Message; OmniusException.Log(e, OmniusLogSource.Nexus, core.Application, core.User); outputVars["Result"] = String.Empty; outputVars["Error"] = true; } }
public ActionResult Delete(int id) { DBEntities e = COREobject.i.Context; ExtDB row = e.ExtDBs.Single(m => m.Id == id); e.ExtDBs.Remove(row); e.SaveChanges(); return(RedirectToRoute("Nexus", new { @action = "Index" })); }
public override void InnerRun(Dictionary <string, object> vars, Dictionary <string, object> outputVars, Dictionary <string, object> InvertedInputVars, Message message) { COREobject core = COREobject.i; DBEntities context = core.Context; try { string dbName = (string)vars["dbName"]; string tableName = (string)vars["TableName"]; JToken data = (JToken)vars["Data"]; ExtDB dbInfo = context.ExtDBs.Where(d => d.DB_Alias == dbName).SingleOrDefault(); if (dbInfo == null) { throw new Exception(string.Format("{0}: Integration was not found", Name)); } NexusExtDBBaseService service; switch (dbInfo.DB_Type) { case ExtDBType.RethinkDB: service = new NexusExtDBRethingService(dbInfo); break; default: service = (new NexusExtDBService(dbInfo.DB_Server, dbInfo.DB_Alias)).NewQuery(""); break; } NexusExtDBResult result = service.Insert(tableName, data); if (result.Errors == 0) { outputVars["Result"] = result.GeneratedKeys.Count > 0 ? result.GeneratedKeys[0] : ""; outputVars["Error"] = false; } else { outputVars["Result"] = result.FirstError; outputVars["Error"] = true; OmniusException.Log(result.FirstError, OmniusLogSource.Nexus, null, core.Application, core.User); } } catch (Exception e) { OmniusException.Log(e, OmniusLogSource.Nexus, core.Application, core.User); outputVars["Result"] = String.Empty; outputVars["Error"] = true; } }
public NexusExtDBService(string serverName, string dbName) { db = new ExtDB(serverName, dbName); }
public override void InnerRun(Dictionary <string, object> vars, Dictionary <string, object> outputVars, Dictionary <string, object> InvertedInputVars, Message message) { COREobject core = COREobject.i; DBEntities context = core.Context; try { string dbName = (string)vars["dbName"]; string tableName = (string)vars["TableName"]; ExtDB dbInfo = context.ExtDBs.Where(d => d.DB_Alias == dbName).SingleOrDefault(); if (dbInfo == null) { throw new Exception(string.Format("{0}: Integration was not found", Name)); } bool isOrderedByIndex = (vars.ContainsKey("OrderByIndex")) ? Convert.ToBoolean(vars["OrderByIndex"]) : false; NexusExtDBBaseService service; switch (dbInfo.DB_Type) { case ExtDBType.RethinkDB: service = new NexusExtDBRethingService(dbInfo); break; default: service = (new NexusExtDBService(dbInfo.DB_Server, dbInfo.DB_Alias)).NewQuery("").Select("*"); break; } var query = service.From(tableName); if (service is NexusExtDBRethingService && vars.ContainsKey("OrderBy")) { string orderBy = (string)vars["OrderBy"]; if (!string.IsNullOrEmpty(orderBy)) { query = isOrderedByIndex ? query.OrderBy($"index:{orderBy}") : query.OrderBy(orderBy); } } int condCount = vars.Keys.Where(k => k.StartsWith("CondColumn[") && k.EndsWith("]")).Count(); if (condCount > 0) { JArray cond = new JArray(); // setConditions for (int i = 0; i < condCount; i++) { string condOperator = vars.ContainsKey($"CondOperator[{i}]") ? (string)vars[$"CondOperator[{i}]"] : "eq"; string condColumn = (string)vars[$"CondColumn[{i}]"]; object condValue = vars[$"CondValue[{i}]"]; var c = new JObject(); c["column"] = condColumn; c["operator"] = condOperator; c["value"] = JToken.FromObject(condValue); cond.Add(c); } query = query.Where(cond); } if (service is NexusExtDBService && vars.ContainsKey("OrderBy")) { string orderBy = (string)vars["OrderBy"]; if (!string.IsNullOrEmpty(orderBy)) { query = query.OrderBy(orderBy); } } if (vars.ContainsKey("Limit")) { query = query.Limit((int)vars["Limit"]); } if (vars.ContainsKey("Skip")) { query = query.Offset((int)vars["Skip"]); } var data = query.FetchAll(); outputVars["Result"] = data; outputVars["Error"] = false; } catch (Exception e) { OmniusException.Log(e, OmniusLogSource.Nexus, core.Application, core.User); outputVars["Result"] = String.Empty; outputVars["Error"] = true; } }