Exemplo n.º 1
0
        /// <summary>
        /// Sync Events
        /// </summary>
        /// <param name="instanceId"></param>
        /// <param name="xml"></param>
        /// <param name="responsibleId"></param>
        public static void SyncEvents(string instanceId, string xml, string responsibleId, IManager manager, IDataModelManager dataModelManager)
        {
            dataModelManager.GetDefaultDataModel(Enums.SQLOperation.SP, "SyncEvents");
            dataModelManager.AddParameter("InstanceId", Enums.ParameterType._int, instanceId);
            dataModelManager.AddParameter("EventXML", Enums.ParameterType._xml, xml);
            dataModelManager.AddParameter("LoginUser", Enums.ParameterType._int, responsibleId);

            manager.ExecuteStoreProcedure(dataModelManager.DataModel);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Update simulation Id in instance table
        /// </summary>
        /// <param name="simulationId"></param>
        public static void UpdateInstance(string instanceId, string simulationId, string xml, IManager manager, IDataModelManager dataModelManager)
        {
            dataModelManager.GetDefaultDataModel(Enums.SQLOperation.UPDATE, "Instance");
            dataModelManager.AddParameter("SimulationId", Enums.ParameterType._int, simulationId);
            dataModelManager.AddFilter("Id", Enums.ParameterType._int, instanceId, Enums.CompareOperator.equal, Enums.LogicalOperator.none);

            if (!string.IsNullOrEmpty(xml))
            {
                dataModelManager.AddParameter("DCRXML", Enums.ParameterType._xml, xml);
            }
            manager.UpdateData(dataModelManager.DataModel);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Add a document
        /// </summary>
        /// <param name="documentName"></param>
        /// <param name="type"></param>
        /// <param name="link"></param>
        public static void AddDocument(string documentName, string type, string link, string instanceId, IManager manager, IDataModelManager dataModelManager)
        {
            dataModelManager.GetDefaultDataModel(Enums.SQLOperation.INSERT, DBEntityNames.Tables.Document.ToString());
            dataModelManager.AddParameter(DBEntityNames.Document.Title.ToString(), Enums.ParameterType._string, documentName);
            dataModelManager.AddParameter(DBEntityNames.Document.Type.ToString(), Enums.ParameterType._string, type);
            dataModelManager.AddParameter(DBEntityNames.Document.Link.ToString(), Enums.ParameterType._string, link);
            dataModelManager.AddParameter(DBEntityNames.Document.Responsible.ToString(), Enums.ParameterType._string, "$(loggedInUser)");
            if (!string.IsNullOrEmpty(instanceId))
            {
                dataModelManager.AddParameter(DBEntityNames.Document.InstanceId.ToString(), Enums.ParameterType._int, instanceId);
            }

            manager.InsertData(dataModelManager.DataModel);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Update Event Type Data
        /// </summary>
        /// <param name="instanceId"></param>
        /// <param name="manager"></param>
        public static void UpdateEventTypeData(dynamic instanceId, IManager manager, IDataModelManager dataModelManager)
        {
            dataModelManager.GetDefaultDataModel(Enums.SQLOperation.SP, "AddEventTypeData");
            dataModelManager.AddParameter("InstanceId", Enums.ParameterType._int, instanceId);

            manager.ExecuteStoreProcedure(dataModelManager.DataModel);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Save parameters
        /// </summary>
        /// <param name="parameters"></param>
        private static void SaveEventTypeDataParamertes(string instanceId, string parametersXML, string method, Exception ex, IManager manager, IDataModelManager dataModelManager)
        {
            dataModelManager.GetDefaultDataModel(Enums.SQLOperation.INSERT, DBEntityNames.Tables.AcadreLog.ToString());
            dataModelManager.AddParameter(DBEntityNames.AcadreLog.Method.ToString(), Enums.ParameterType._string, method);
            dataModelManager.AddParameter(DBEntityNames.AcadreLog.Parameters.ToString(), Enums.ParameterType._xml, parametersXML);
            dataModelManager.AddParameter(DBEntityNames.AcadreLog.IsSuccess.ToString(), Enums.ParameterType._boolean, bool.FalseString);
            dataModelManager.AddParameter(DBEntityNames.AcadreLog.ErrorStatement.ToString(), Enums.ParameterType._string, ex.Message);
            dataModelManager.AddParameter(DBEntityNames.AcadreLog.ErrorStackTrace.ToString(), Enums.ParameterType._string, ex.StackTrace);
            dataModelManager.AddParameter(DBEntityNames.AcadreLog.InstanceId.ToString(), Enums.ParameterType._string, instanceId);

            manager.InsertData(dataModelManager.DataModel);
        }
Exemplo n.º 6
0
 /// <summary>
 /// Add a journal note to the history table
 /// </summary>
 /// <param name="instanceId"></param>
 /// <param name="eventId"></param>
 /// <param name="documentId"></param>
 /// <param name="type"></param>
 /// <param name="title"></param>
 /// <param name="eventDate"></param>
 /// <param name="isLocked"></param>
 public static void AddJournalHistory(string instanceId, string eventId, string documentId, string type, string title, DateTime eventDateTime, IManager manager, IDataModelManager dataModelManager)
 {
     if (!string.IsNullOrEmpty(instanceId))
     {
         dataModelManager.GetDefaultDataModel(Enums.SQLOperation.INSERT, DBEntityNames.Tables.JournalHistory.ToString());
         dataModelManager.AddParameter(DBEntityNames.JournalHistory.InstanceId.ToString(), Enums.ParameterType._int, instanceId.ToString());
         if (eventId != null)
         {
             dataModelManager.AddParameter(DBEntityNames.JournalHistory.EventId.ToString(), Enums.ParameterType._int, eventId.ToString());
         }
         if (documentId != null)
         {
             dataModelManager.AddParameter(DBEntityNames.JournalHistory.DocumentId.ToString(), Enums.ParameterType._int, documentId.ToString());
         }
         dataModelManager.AddParameter(DBEntityNames.JournalHistory.Type.ToString(), Enums.ParameterType._string, type);
         dataModelManager.AddParameter(DBEntityNames.JournalHistory.Title.ToString(), Enums.ParameterType._string, title);
         dataModelManager.AddParameter(DBEntityNames.JournalHistory.EventDate.ToString(), Enums.ParameterType._datetime, eventDateTime.ToString());
         dataModelManager.AddParameter(DBEntityNames.JournalHistory.CreationDate.ToString(), Enums.ParameterType._datetime, DateTime.Now.ToString());
         dataModelManager.AddParameter(DBEntityNames.JournalHistory.IsLocked.ToString(), Enums.ParameterType._boolean, "False");
         manager.InsertData(dataModelManager.DataModel);
     }
 }
Exemplo n.º 7
0
        /// <summary>
        /// Add a document
        /// </summary>
        /// <param name="documentName"></param>
        /// <param name="type"></param>
        /// <param name="link"></param>
        public static string AddDocument(string documentName, string type, string link, string instanceId, bool isDraft, DateTime eventDateTime, IManager manager, IDataModelManager dataModelManager)
        {
            dataModelManager.GetDefaultDataModel(Enums.SQLOperation.INSERT, DBEntityNames.Tables.Document.ToString());
            dataModelManager.AddParameter(DBEntityNames.Document.Title.ToString(), Enums.ParameterType._string, documentName);
            dataModelManager.AddParameter(DBEntityNames.Document.Type.ToString(), Enums.ParameterType._string, type);
            dataModelManager.AddParameter(DBEntityNames.Document.Link.ToString(), Enums.ParameterType._string, link);
            dataModelManager.AddParameter(DBEntityNames.Document.Responsible.ToString(), Enums.ParameterType._string, "$(loggedInUser)");
            dataModelManager.AddParameter(DBEntityNames.Document.UploadDate.ToString(), Enums.ParameterType._datetime, DateTime.Now.ToString());
            dataModelManager.AddParameter(DBEntityNames.Document.IsLocked.ToString(), Enums.ParameterType._boolean, "false");
            dataModelManager.AddParameter(DBEntityNames.Document.IsDraft.ToString(), Enums.ParameterType._boolean, isDraft.ToString());

            if (!string.IsNullOrEmpty(instanceId))
            {
                dataModelManager.AddParameter(DBEntityNames.Document.InstanceId.ToString(), Enums.ParameterType._int, instanceId);
            }

            var dataTable  = manager.InsertData(dataModelManager.DataModel);
            var documentId = dataTable.Rows[0].ItemArray[0].ToString();

            AddJournalHistory(instanceId, null, documentId, type, documentName, eventDateTime, manager, dataModelManager);
            return(documentId);
        }
Exemplo n.º 8
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());
        }
Exemplo n.º 9
0
        /// <summary>
        /// Automatic Events
        /// </summary>
        /// <param name="instanceId"></param>
        /// <param name="graphId"></param>
        /// <param name="simulationId"></param>
        /// <param name="responsible"></param>
        private void AutomaticEvents(string instanceId, string graphId, string simulationId, string responsible)
        {
            for (int i = 0; i < Configurations.Config.AutomaticEventsLimit; i++)
            {
                _dataModelManager.GetDefaultDataModel(Enums.SQLOperation.SELECT, "InstanceAutomaticEvents");
                _dataModelManager.AddResultSet(new List <string>()
                {
                    "TOP(1) EventId", "EventTitle", "EventOpen", "IsEnabled", "IsPending", "IsIncluded", "IsExecuted", "EventType", "InstanceId", "Responsible", "EventTypeData"
                });
                _dataModelManager.AddFilter("InstanceId", Enums.ParameterType._int, instanceId, Enums.CompareOperator.equal, Enums.LogicalOperator.none);
                var automaticEvents = _manager.SelectData(_dataModelManager.DataModel);
                if (automaticEvents.Rows.Count == 0)
                {
                    i = Configurations.Config.AutomaticEventsLimit;
                }
                else
                {
                    var dataRow     = automaticEvents.Rows[0];
                    var eventsXml   = string.Empty;
                    var instanceXml = string.Empty;

                    // execute event
                    _dcrService.ExecuteEvent(graphId, simulationId, dataRow["EventId"].ToString());
                    // get pending or enabled from active repository
                    eventsXml = _dcrService.GetPendingOrEnabled(graphId, simulationId);

                    Common.SyncEvents(instanceId, eventsXml, responsible, _manager, _dataModelManager);

                    #region Alec Code
                    // Alec Code will come up here
                    switch (dataRow["EventType"].ToString())
                    {
                    case "CreateCaseAcadre":
                        // get parametes for acadre
                        var parameters = Common.GetParametersFromEventTypeData(dataRow["EventTypeData"].ToString(), instanceId, _manager, _dataModelManager);

                        // create casse in acadre
                        if (parameters.Count > 0)
                        {
                            string caseId        = Common.CreateCase(instanceId, parameters, _manager, _dataModelManager);
                            string caseLink      = Common.GetCaseLink(caseId);
                            string CaseIdForeign = Common.GetCaseIdForeign(caseId);

                            if (!string.IsNullOrEmpty(caseId))
                            {
                                // update case Id and case link in open case manager
                                _dataModelManager.GetDefaultDataModel(Enums.SQLOperation.UPDATE, "Instance");
                                _dataModelManager.AddParameter("CaseNoForeign", Enums.ParameterType._string, CaseIdForeign);
                                _dataModelManager.AddParameter("CaseLink", Enums.ParameterType._string, caseLink);
                                _dataModelManager.AddParameter("InternalCaseID", Enums.ParameterType._string, caseId);
                                _dataModelManager.AddFilter("Id", Enums.ParameterType._int, instanceId, Enums.CompareOperator.equal, Enums.LogicalOperator.none);
                                _manager.UpdateData(_dataModelManager.DataModel);
                            }
                        }
                        break;

                    case "CloseCaseAcadre":

                        _dataModelManager.GetDefaultDataModel(Enums.SQLOperation.SELECT, "Instance");
                        _dataModelManager.AddResultSet(new List <string> {
                            "InternalCaseID"
                        });
                        _dataModelManager.AddFilter("Id", Enums.ParameterType._int, instanceId, Enums.CompareOperator.equal, Enums.LogicalOperator.none);

                        var data = _manager.SelectData(_dataModelManager.DataModel);
                        if (data.Rows.Count > 0 && data.Rows[0]["InternalCaseID"].ToString() != "")
                        {
                            Common.CloseCase(data.Rows[0]["InternalCaseID"].ToString());
                        }
                        break;

                    case "UploadDocument":
                        // get parametes for acadre
                        var documentTitle = "";
                        parameters = Common.GetParametersFromEventTypeData(dataRow["EventTypeData"].ToString(), instanceId, _manager, _dataModelManager);
                        if (parameters.ContainsKey("AssociatedEventId".ToLower()))
                        {
                            documentTitle = parameters["AssociatedEventId".ToLower()];
                        }
                        // get document
                        _dataModelManager.GetDefaultDataModel(Enums.SQLOperation.SELECT, DBEntityNames.Tables.Document.ToString());
                        _dataModelManager.AddResultSet(new List <string>()
                        {
                            DBEntityNames.Document.Id.ToString(), DBEntityNames.Document.Title.ToString(), DBEntityNames.Document.Link.ToString()
                        });
                        if (string.IsNullOrEmpty(documentTitle))
                        {
                            _dataModelManager.AddFilter(DBEntityNames.Document.Title.ToString(), Enums.ParameterType._string, documentTitle, Enums.CompareOperator.like, Enums.LogicalOperator.and);
                        }
                        else
                        {
                            _dataModelManager.AddFilter(DBEntityNames.Document.Title.ToString(), Enums.ParameterType._string, documentTitle, Enums.CompareOperator.equal, Enums.LogicalOperator.and);
                        }
                        _dataModelManager.AddFilter(DBEntityNames.Document.InstanceId.ToString(), Enums.ParameterType._int, instanceId, Enums.CompareOperator.equal, Enums.LogicalOperator.and);
                        _dataModelManager.AddFilter(DBEntityNames.Document.IsActive.ToString(), Enums.ParameterType._boolean, bool.TrueString, Enums.CompareOperator.equal, Enums.LogicalOperator.and);
                        _dataModelManager.AddFilter(DBEntityNames.Document.Type.ToString(), Enums.ParameterType._string, "Temp", Enums.CompareOperator.equal, Enums.LogicalOperator.none);
                        var document = _manager.SelectData(_dataModelManager.DataModel);

                        if (document.Rows.Count > 0)
                        {
                            var fileName = document.Rows[0][DBEntityNames.Document.Title.ToString()].ToString();
                            var filePath = document.Rows[0][DBEntityNames.Document.Link.ToString()].ToString();

                            fileName = fileName + Path.GetExtension(filePath);
                            byte[] fileBytes = File.ReadAllBytes(filePath);

                            // delete temp document
                            try
                            {
                                string documentId = Common.CreateDocument(parameters, fileName, fileBytes, instanceId, _manager, _dataModelManager);
                            }
                            catch (Exception ex)
                            {
                                throw ex;
                            }
                            finally
                            {
                                var fileInfo = new FileInfo(filePath);
                                if (fileInfo.Exists)
                                {
                                    fileInfo.Directory.Delete(true);
                                }

                                _dataModelManager.GetDefaultDataModel(Enums.SQLOperation.UPDATE, DBEntityNames.Tables.Document.ToString());
                                _dataModelManager.AddParameter(DBEntityNames.Document.IsActive.ToString(), Enums.ParameterType._boolean, bool.FalseString);
                                _dataModelManager.AddFilter(DBEntityNames.Document.Id.ToString(), Enums.ParameterType._int, document.Rows[0][DBEntityNames.Document.Id.ToString()].ToString(), Enums.CompareOperator.equal, Enums.LogicalOperator.none);
                                _manager.UpdateData(_dataModelManager.DataModel);
                            }
                        }
                        break;
                    }
                    #endregion
                }
            }
        }