// 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()); }
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); } }
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))); }