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)); } }
/// <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); }
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)); } }
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)); } }
/// <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)); }
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)); }
/// <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)); }
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; }
public static void SetupSchemaParameterValues(UserConnection userConnection, ProcessActivity processElement) { return; }