public StatusCode Init(string param_key) { StatusCode retVal = StatusCode.SUCCEED_STATUS; lock (this) { if (CanInitialize == false) { return(retVal); } string strValue = Access.ParameterAccess.GetStringValue(param_key); StatusCode.Debug("KEY:" + param_key + " VAL:" + strValue, Config); List <short> lstServerToActivate = new List <short>(); if (string.IsNullOrEmpty(strValue) == false) { lstServerToActivate = Newtonsoft.Json.JsonConvert.DeserializeObject <List <short> >(strValue); } List <Models.ServiceType> lstType = GyomuDataAccess.GetAllServiceType(); List <Models.Service> lstServerService = GyomuDataAccess.GetAllService(); retVal = internalInit(lstServerService, lstType); if (retVal.IsSucceeded == false) { return(retVal); } } return(retVal); }
private void lockInstanceAndRefreshCurrentTaskData() { StatusCode retVal = StatusCode.SUCCEED_STATUS; CurrentTask = GyomuDataAccess.LockTaskData(TaskDataID); loadTaskData(); }
private void loadTaskData() { if (taskDataLoaded) { return; } if (CurrentTask == null) { CurrentTask = GyomuDataAccess.SelectTaskData(TaskDataID); } TaskDataParameter = CurrentTask.parameter; Instances = GyomuDataAccess.SelectTaskInstanceByTaskData(CurrentTask); LatestInstance = Instances.FirstOrDefault(); LatestInstanceID = LatestInstance.id; AccessList = GyomuDataAccess.SelectTaskAccessLists(ApplicationID, TaskInfoID); taskDataLoaded = true; }
private StatusCode createNewInstance(string parameter, string mnemonic, List <WindowsUser> submit_to, StatusCode statusCode, string comment) { try { GyomuDataAccess.CreateNewTaskInstance(CurrentTask, Config, mnemonic, parameter, comment, statusCode, submit_to, out Models.TaskInstance taskInstance); LatestInstance = taskInstance; LatestInstanceID = LatestInstance.id; Instances.Add(LatestInstance); Notify(null); } catch (Exception ex) { return (new CommonStatusCode(CommonStatusCode.TASK_INSTANCE_GENERATE_ERROR, new object[] { ApplicationID, TaskInfoID, TaskDataID, parameter }, ex, Config, ApplicationID)); } return(StatusCode.SUCCEED_STATUS); }
private StatusCode createNewTask(string comment, Models.TaskData parentTask) { try { GyomuDataAccess.CreateNewTask(CurrentTaskInfo, Config, TaskDataParameter, comment, parentTask, out Models.TaskData taskData, out Models.TaskInstance taskInstance, out Models.TaskDataStatus taskStatus); CurrentTask = taskData; LatestInstance = taskInstance; Instances = new List <Models.TaskInstance>() { LatestInstance }; LatestInstanceID = LatestInstance.id; } catch (Exception ex) { return (new CommonStatusCode(CommonStatusCode.TASK_GENERATE_ERROR, new object[] { ApplicationID, TaskInfoID, TaskDataParameter }, ex, Config, ApplicationID)); } return(StatusCode.SUCCEED_STATUS); }
private void abstractBaseTask_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (string.IsNullOrEmpty(e.PropertyName)) { return; } if (string.IsNullOrEmpty(e.PropertyName.Trim())) { return; } try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress)) { Models.TaskDataLog taskLog = new Models.TaskDataLog() { task_data_id = TaskDataID, log = e.PropertyName ?? "" }; GyomuDataAccess.InsertTaskDataLog(taskLog); } } catch (Exception) { } }
public StatusCode Init(short[] serviceIds) { StatusCode retVal = StatusCode.SUCCEED_STATUS; lock (this) { if (CanInitialize == false) { return(retVal); } //Data.CommonData commonData = new Data.CommonData(); //commonData.LoadServer(serviceIds); List <Models.ServiceType> lstType = GyomuDataAccess.GetAllServiceType(); List <Models.Service> lstService = GyomuDataAccess.GetAllService().Where(s => serviceIds.Contains(s.id)).ToList(); retVal = internalInit(lstService, lstType); if (retVal.IsSucceeded == false) { return(retVal); } } return(retVal); }
private bool internalValidOwner(string target_status_mnemonic) { string current_status = null; if (LatestInstance == null) { return(true); } if (target_status_mnemonic.Equals(STATUS_INIT) == false) { current_status = LatestInstance.task_status; } User requestor = null; switch (target_status_mnemonic) { case STATUS_INIT: if (internalCheckTaskAccessibility()) { return(true); } break; case STATUS_APPROVAL: case STATUS_REJECT: //Get Submit Persons if (IsSelfApproveEnable == false) { requestor = User.GetUser(LatestInstance.entry_author); if (requestor.IsValid && requestor.Equals(CurrentUser)) { return(false); } } foreach (Models.TaskSubmitInformation taskSubmitInformation in GyomuDataAccess.SelectTaskSubmitInformation(LatestInstance)) { User submit_user = User.GetUser(taskSubmitInformation.submit_to); if (submit_user.IsValid) { if (submit_user.IsGroup == false && submit_user.Equals(CurrentUser)) { return(true); } if (submit_user.IsGroup) { if (CurrentUser.IsInGroup(submit_user)) { return(true); } } } } break; case STATUS_EXECUTE: //If Current Status is not Delegate, it must be equal to Latest instance's user if (STATUS_DELEGATE.Equals(current_status) == false) { Models.DelegateInformation info = DelegateInformation; if (info.DelegationRequired) { if (Instances.Where(i => i.task_status.Equals(STATUS_DELEGATE) && i.entry_author.Equals(CurrentUser.UserID)).Count() > 0) { return(true); } User previousUser = User.GetUser(LatestInstance.entry_author); if (previousUser.IsValid && previousUser.Equals(CurrentUser)) { return(true); } } else { User previousUser = User.GetUser(LatestInstance.entry_author); if (previousUser.IsValid && previousUser.Equals(CurrentUser)) { return(true); } } } //Else it must be submit user in the latest instance else { foreach (Models.TaskSubmitInformation taskSubmitInformation in GyomuDataAccess.SelectTaskSubmitInformation(LatestInstance)) { User submit_user = User.GetUser(taskSubmitInformation.submit_to); if (submit_user.IsValid) { if (submit_user.IsGroup == false && submit_user.Equals(CurrentUser)) { return(true); } if (submit_user.IsGroup && CurrentUser.IsInGroup(submit_user)) { return(true); } } } } break; case STATUS_REQUEST: //Approver or Starter User starter = User.GetUser(CurrentTask.entry_author); if (starter.IsValid && starter.Equals(CurrentUser)) { return(true); } if (LatestInstance.task_status.Equals(STATUS_APPROVAL)) { User approver = User.GetUser(LatestInstance.entry_author); if (approver.IsValid && approver.Equals(CurrentUser)) { return(true); } } break; case STATUS_CANCEL: //Requester requestor = User.GetUser(LatestInstance.entry_author); if (requestor.IsValid && requestor.Equals(CurrentUser)) { return(true); } break; case STATUS_COMPLETE: //For Force Success if (internalCheckTaskAccessibility() == false) { return(false); } if (current_status.Equals(STATUS_FAIL)) { return(true); } break; default: return(true); } return(false); }
protected List <Models.TaskSubmitInformation> LoadSubmitInformation(Models.TaskInstance taskInstance) { return(GyomuDataAccess.SelectTaskSubmitInformation(taskInstance)); }