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));
            }
        }
Beispiel #2
0
        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" }));
        }
Beispiel #4
0
        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);
 }
Beispiel #6
0
        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;
            }
        }