Ejemplo n.º 1
0
        public IHttpActionResult PauseByOperator(int processAssignID, string userName, string userID, int reasonID)
        {
            using (PowerAppsCMSEntities db = new PowerAppsCMSEntities())
            {
                Guid     guidUserID  = Guid.Parse(userID.Replace(" ", string.Empty));
                DateTime now         = DateTime.Now;
                decimal  actualHours = 0;

                var workinLog = db.ProcessActivities.Where(x => x.ProcessAssignID == processAssignID && x.ProcessAssign.UserID == guidUserID).OrderByDescending(x => x.ID).FirstOrDefault();
                if (workinLog != null && workinLog.Status == 1)
                {
                    actualHours = Convert.ToDecimal(now.Subtract(workinLog.ActivityDateTime).TotalSeconds);
                }

                ProcessActivity processActivity = new ProcessActivity();
                processActivity.Status        = (int)ProcessActivityStatus.Pause;
                processActivity.CreatedBy     = processActivity.LastModifiedBy = userName;
                processActivity.Created       = processActivity.LastModified = processActivity.ActivityDateTime = now;
                processActivity.ActualHours   = actualHours;
                processActivity.ReasonPauseID = reasonID;

                ProcessAssign processAssign = db.ProcessAssigns.Where(x => x.ID == processAssignID).FirstOrDefault();
                processAssign.Status         = (int)ProcessAssignStatus.Pause;
                processAssign.LastModified   = now;
                processAssign.LastModifiedBy = userName;
                processAssign.ProcessActivities.Add(processActivity);

                db.SaveChanges();

                return(Ok(HttpStatusCode.OK));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Initializes the specified EntitySchemaQuery filters.
        /// </summary>
        /// <param name="userConnection">User connection.</param>
        /// <param name="processActivity">Process activity.</param>
        /// <param name="entitySchema">Entity schema.</param>
        /// <param name="esq">Instance of the EntitySchemaQuery class.</param>
        /// <param name="dataSourceFilters">Serialized filters.</param>
        public static void SpecifyESQFilters(UserConnection userConnection, ProcessActivity processActivity,
                                             EntitySchema entitySchema, EntitySchemaQuery esq, string dataSourceFilters)
        {
            userConnection.CheckArgumentNull("userConnection");
            processActivity.CheckArgumentNull("processActivity");
            entitySchema.CheckArgumentNull("entitySchema");
            esq.CheckArgumentNull("esq");
            if (string.IsNullOrEmpty(dataSourceFilters))
            {
                return;
            }
            IEntitySchemaQueryFilterItem esqFilter;
            var userConnectionArgument             = new ConstructorArgument("userConnection", userConnection);
            var processDataContractFilterConverter = ClassFactory
                                                     .Get <IProcessDataContractFilterConverter>(userConnectionArgument);

            if (processDataContractFilterConverter.GetIsDataContractFilter(dataSourceFilters))
            {
                ServiceConfig.Initialize();
                esqFilter = processDataContractFilterConverter.ConvertToEntitySchemaQueryFilterItem(esq,
                                                                                                    processActivity.Owner, dataSourceFilters);
            }
            else
            {
                DataSourceFilterCollection filterCollection = ConvertToProcessDataSourceFilterCollection(userConnection,
                                                                                                         entitySchema, processActivity, dataSourceFilters);
                esqFilter = filterCollection.ToEntitySchemaQueryFilterCollection(esq);
            }
            esq.Filters.Add(esqFilter);
        }
Ejemplo n.º 3
0
        private static LocalizableString GetSchemaElementCaption(ProcessActivity processElement)
        {
            BaseProcessSchemaElement schemaElement        = processElement.GetSchemaElement();
            LocalizableString        schemaElementCaption = schemaElement.Caption;

            return(LocalizableString.IsNullOrEmpty(schemaElementCaption)
                                ? new LocalizableString("Terrasoft.Core",
                                                        string.Concat("ProcessSchema", processElement.Schema.Name, ".Caption"))
                                : schemaElementCaption);
        }
        public IHttpActionResult ForceStop(int processAssignID, string userName, string userID)
        {
            using (PowerAppsCMSEntities db = new PowerAppsCMSEntities())
            {
                Guid     guidUserID  = Guid.Parse(userID.Replace(" ", string.Empty));
                DateTime now         = DateTime.Now;
                decimal  actualHours = 0;

                ProcessActivity workinLog = db.ProcessActivities.Where(x => x.ProcessAssignID == processAssignID && x.ProcessAssign.UserID == guidUserID).OrderByDescending(x => x.ID).FirstOrDefault();
                if (workinLog != null && workinLog.Status == 1)
                {
                    actualHours = Convert.ToDecimal(now.Subtract(workinLog.ActivityDateTime).TotalSeconds);
                }

                ProcessActivity processActivity = new ProcessActivity();
                processActivity.Status      = (int)ProcessActivityStatus.Stop;
                processActivity.CreatedBy   = processActivity.LastModifiedBy = userName;
                processActivity.Created     = processActivity.LastModified = processActivity.ActivityDateTime = now;
                processActivity.ActualHours = actualHours;

                ProcessAssign processAssign = db.ProcessAssigns.Where(x => x.ID == processAssignID).FirstOrDefault();
                processAssign.Status         = (int)ProcessAssignStatus.Stop;
                processAssign.LastModified   = now;
                processAssign.LastModifiedBy = userName;
                processAssign.ProcessActivities.Add(processActivity);

                if (db.SaveChanges() > 0)
                {
                    Process selectedProcess = db.Processes.Where(x => x.ID == processAssign.ProcessID).SingleOrDefault();
                    if (selectedProcess.ProcessAssigns.Where(x => x.Status != (int)ProcessAssignStatus.Stop).Count() == 0)
                    {
                        selectedProcess.Status         = (int)ProcessStatus.StopByOperator;
                        selectedProcess.LastModifiedBy = userName;
                        selectedProcess.LastModified   = now;
                    }

                    User user = db.Users.Find(processAssign.UserID);
                    user.IsAssign = false;

                    if (db.SaveChanges() > 0)
                    {
                        ProcessStatusLogs processStatusLogs = new ProcessStatusLogs();
                        processStatusLogs.ProcessID   = processAssign.ProcessID;
                        processStatusLogs.Description = "Force Stop";
                        processStatusLogs.Status      = (int)ProcessStatus.StopByOperator;
                        processStatusLogs.StatusName  = "Stop by Operator";
                        processStatusLogs.CreatedBy   = userName;
                        processStatusLogs.Created     = now;
                        db.ProcessStatusLogs.Add(processStatusLogs);
                        db.SaveChanges();
                    }
                }
                return(Ok(HttpStatusCode.OK));
            }
        }
Ejemplo n.º 5
0
        public IHttpActionResult StartByOperator(int processID, int processAssignID, string userName)
        {
            using (PowerAppsCMSEntities db = new PowerAppsCMSEntities())
            {
                DateTime now = DateTime.Now;

                ProcessActivity processActivity = new ProcessActivity();
                processActivity.ProcessAssignID = processAssignID;
                processActivity.Status          = (int)ProcessActivityStatus.Start;
                processActivity.Created         = processActivity.LastModified = processActivity.ActivityDateTime = now;
                processActivity.CreatedBy       = processActivity.LastModifiedBy = userName;

                ProcessAssign processAssign = db.ProcessAssigns.Where(x => x.ID == processAssignID).FirstOrDefault();
                processAssign.Status         = (int)ProcessAssignStatus.Start;
                processAssign.LastModified   = now;
                processAssign.LastModifiedBy = userName;
                processAssign.ProcessActivities.Add(processActivity);
                if (db.SaveChanges() > 0)
                {
                    Process selectedProcess = db.Processes.Where(x => x.ID == processID).SingleOrDefault();
                    if (selectedProcess.ActualStartDate == null)
                    {
                        selectedProcess.ActualStartDate = now;
                    }

                    if (selectedProcess.Status != (int)ProcessStatus.OnProcess)
                    {
                        selectedProcess.Status         = (int)ProcessStatus.OnProcess;
                        selectedProcess.LastModified   = now;
                        selectedProcess.LastModifiedBy = userName;
                    }
                    else if (selectedProcess.Status == (int)ProcessStatus.OnProcess)
                    {
                        selectedProcess.LastModified   = now;
                        selectedProcess.LastModifiedBy = userName;
                    }

                    if (db.SaveChanges() > 0)
                    {
                        ProcessStatusLogs processStatusLogs = new ProcessStatusLogs();
                        processStatusLogs.ProcessID   = processID;
                        processStatusLogs.Description = "On Process";
                        processStatusLogs.Status      = (int)ProcessStatus.OnProcess;
                        processStatusLogs.StatusName  = "On Process";
                        processStatusLogs.CreatedBy   = userName;
                        processStatusLogs.Created     = now;
                        db.ProcessStatusLogs.Add(processStatusLogs);
                        db.SaveChanges();
                    }
                }
                return(Ok(HttpStatusCode.OK));
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Converts a set of filters to process format.
        /// </summary>
        /// <param name="userConnection">User connection.</param>
        /// <param name="entitySchema">Entity schema.</param>
        /// <param name="processActivity">Process activity.</param>
        /// <param name="dataSourceFilters">Serialized filters.</param>
        /// <returns>Set of filters in the process format.</returns>
        public static string ConvertToProcessDataSourceFilters(UserConnection userConnection, EntitySchema entitySchema,
                                                               ProcessActivity processActivity, string dataSourceFilters)
        {
            userConnection.CheckArgumentNull("userConnection");
            entitySchema.CheckArgumentNull("entitySchema");
            processActivity.CheckArgumentNull("processActivity");
            dataSourceFilters.CheckArgumentNullOrEmpty("dataSourceFilters");
            var userConnectionArgument            = new ConstructorArgument("userConnection", userConnection);
            var processDataSourceFiltersConverter = ClassFactory
                                                    .Get <IProcessDataSourceFiltersConverter>(userConnectionArgument);

            return(processDataSourceFiltersConverter.ConvertToProcessDataSourceFilters(processActivity,
                                                                                       entitySchema.UId, dataSourceFilters));
        }
Ejemplo n.º 7
0
        public static DataSourceFilterCollection ConvertToProcessDataSourceFilterCollection(
            UserConnection userConnection, EntitySchema entitySchema, ProcessActivity processActivity,
            string dataSourceFilters)
        {
            if (string.IsNullOrEmpty(dataSourceFilters))
            {
                return(null);
            }
            var converter = new ProcessDataSourceFiltersJsonConverter(userConnection, entitySchema, processActivity)
            {
                PreventRegisteringClientScript = true
            };
            var converters = new List <Newtonsoft.Json.JsonConverter> {
                converter
            };

            return((DataSourceFilterCollection)Json.Deserialize(dataSourceFilters, typeof(DataSourceFilterCollection),
                                                                converters));
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Returns title of the activity.
        /// </summary>
        /// <param name="processElement">Process element.</param>
        /// <param name="recommendation">Text of the recommendation.</param>
        /// <param name="currentActivityId">Identifier of the current activity.</param>
        /// <returns></returns>
        public static string GetActivityTitle(ProcessActivity processElement, LocalizableString recommendation,
                                              Guid currentActivityId)
        {
            if (processElement.IsExecuted)
            {
                var select =
                    (Select) new Select(processElement.UserConnection)
                    .Column("Title")
                    .From("Activity").WithHints(Hints.NoLock)
                    .Where("Id").IsEqual(Column.Parameter(currentActivityId));
                return(select.ExecuteScalar <string>());
            }
            LocalizableString titleValue = null;

            if (!LocalizableString.IsNullOrEmpty(recommendation))
            {
                titleValue = recommendation;
            }
            return((titleValue ?? GetSchemaElementCaption(processElement))
                   .Value?.Truncate(500));
        }
Ejemplo n.º 9
0
 public void RegisterActivity(ProcessActivity activity, Action callback)
 {
     m_Activities.Add($"{ActivityNamePrefix}{activity.ToString()}", callback);
 }
 // POST: api/ProcessActivity
 public bool Post([FromBody] ProcessActivity value)
 {
     return(processActivityManager.Post(value));
 }
 public ProcessActivityDto(ProcessActivity activity)
 {
     Activity = activity;
     Id       = activity.Id;
 }
Ejemplo n.º 12
0
 public static void SetupSchemaParameterValues(UserConnection userConnection, ProcessActivity processElement)
 {
     return;
 }