Beispiel #1
0
        // POST api/values
        public IHttpActionResult AddProcess(List <Model> input)
        {
            var countAdded = 0;

            // add Instance
            foreach (var process in input)
            {
                var graphXml = string.Empty;
                graphXml = _dCRService.GetProcess(process.GraphId);

                _dataModelManager.GetDefaultDataModel(Enums.SQLOperation.SELECT, DBEntityNames.Tables.Process.ToString());
                _dataModelManager.AddFilter(DBEntityNames.Process.GraphId.ToString(), Enums.ParameterType._int, process.GraphId.ToString(), Enums.CompareOperator.equal, Enums.LogicalOperator.and);
                _dataModelManager.AddFilter(DBEntityNames.Process.Status.ToString(), Enums.ParameterType._boolean, Boolean.FalseString, Enums.CompareOperator.equal, Enums.LogicalOperator.none);
                _dataModelManager.AddResultSet(new List <string> {
                    DBEntityNames.Process.Id.ToString(), DBEntityNames.Process.GraphId.ToString(), DBEntityNames.Process.Status.ToString()
                });

                var processes = _manager.SelectData(_dataModelManager.DataModel);
                if (processes.Rows.Count < 1)
                {
                    _dataModelManager.GetDefaultDataModel(Enums.SQLOperation.INSERT, DBEntityNames.Tables.Process.ToString());
                    _dataModelManager.AddParameter(DBEntityNames.Process.Title.ToString(), Enums.ParameterType._string, process.Title);
                    _dataModelManager.AddParameter(DBEntityNames.Process.GraphId.ToString(), Enums.ParameterType._int, process.GraphId.ToString());
                    _dataModelManager.AddParameter(DBEntityNames.Process.DCRXML.ToString(), Enums.ParameterType._xml, graphXml);

                    try
                    {
                        var processId = _manager.InsertData(_dataModelManager.DataModel);

                        var phases = _dCRService.GetProcessPhases(process.GraphId);

                        _dataModelManager.GetDefaultDataModel(Enums.SQLOperation.SP, DBEntityNames.StoredProcedures.AddProcessPhases.ToString());
                        _dataModelManager.AddParameter(DBEntityNames.AddProcessPhases.ProcessId.ToString(), Enums.ParameterType._int, (processId.Rows[0]["Id"]).ToString());
                        _dataModelManager.AddParameter(DBEntityNames.AddProcessPhases.PhaseXml.ToString(), Enums.ParameterType._xml, phases);

                        _manager.ExecuteStoreProcedure(_dataModelManager.DataModel);

                        countAdded++;
                    }
                    catch
                    {
                    }
                }
                else
                {
                    UpdateProcessAndPhases(processes.Rows[0][DBEntityNames.Process.Id.ToString()].ToString(), processes.Rows[0][DBEntityNames.Process.GraphId.ToString()].ToString(), process.Title);
                    countAdded++;
                }
            }
            if (countAdded > 0)
            {
                return(Ok(countAdded));
            }
            return(Conflict());
        }
Beispiel #2
0
        public static string getXmlFromGuid(InitializeFormInput input)
        {
            try
            {
                _dataModelManager.GetDefaultDataModel(Enums.SQLOperation.SELECT, Enums.Tables.DCR_Subscription.ToString());
                _dataModelManager.AddResultSet(new List <String> {
                    "SubscriptionGUID", "DCRGraphID", "DCRUserName", "DCRPassword"
                });
                _dataModelManager.AddFilter("SubscriptionGUID", Enums.ParameterType._string, input.Guid, Enums.CompareOperator.equal, Enums.LogicalOperator.none);
                var data = _sqlManager.SelectData(_dataModelManager.DataModel);

                if (data.Rows.Count == 0)
                {
                    Errors.Add(new Error("getXmlFromGuid", 404, "Internal Error", input.Guid + " not found in database", new Input(input.Guid)));
                    return(null);
                }
                else
                {
                    try
                    {
                        var graphID  = data.Rows[0]["DCRGraphID"].ToString();
                        var username = data.Rows[0]["DCRUserName"].ToString();
                        var password = data.Rows[0]["DCRPassword"].ToString();
                        //HERE: search repository given the graphID. Parse XML and add to activeforms.
                        var xml = _dcrService.GetProcess(graphID, username, password);
                        return(xml);
                    }
                    catch (RestRequestException e)
                    {
                        System.Net.HttpStatusCode code = e.statusCode;
                        var st = 500;
                        if (code == System.Net.HttpStatusCode.Forbidden)
                        {
                            st = 401;
                        }
                        else if (code == System.Net.HttpStatusCode.Unauthorized)
                        {
                            st = 403;
                        }

                        Errors.Add(new Error("getXmlFromGuid", st, "Internal Error", e.Message, new Input(input.Guid)));
                        return(null);
                    }
                }
            }
            catch (SqlCommandException e)
            {
                Errors.Add(new Error("getXmlFromGuid", 500, "Sql error: " + e.command, e.Message));
                return(null);
            }
        }
Beispiel #3
0
        public IHttpActionResult SearchProcess(dynamic input)
        {
            var graphId = 0;
            var title   = string.Empty;
            var content = string.Empty;

            if (input["searchText"] != null)
            {
                title = input["searchText"];
                bool parseStatus = int.TryParse(title, out graphId);
                title = "?title=" + input["searchText"];
            }

            if (graphId == 0)
            {
                // search process
                content = _dcrService.SearchProcess(title);
            }
            else
            {
                // get process
                content = _dcrService.GetProcess(graphId.ToString());
                var graphXml = new XmlDocument();
                graphXml.LoadXml(content);
                var graphTitle = string.Empty;
                if (graphXml.GetElementsByTagName("dcrgraph").Count > 0)
                {
                    graphTitle = graphXml.GetElementsByTagName("dcrgraph")[0].Attributes["title"].Value;
                }

                content = "<graphs><graph id =\"" + graphId + "\" title=\"" + graphTitle + "\"></graph></graphs>";
            }
            content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + content;

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.LoadXml(content);
            return(Ok(JsonConvert.SerializeObject(xmlDoc)));
        }