public void CompleteWorkItemAsync(int workItemId, List <IApproveUser> nextApproveUserList) { try { this.UpdateWorkItemAsCompleting(workItemId); int num = this._context.GetNextIdentity_Int(false); SysWorkflowMessage msg = new SysWorkflowMessage { MessageId = num, MessageType = WorkflowMessageTypeEnum.CompletingWorkItem, WorkItemId = workItemId, State = SysWorkflowMessageStateEnum.Inited, CreateTime = DateTime.Now }; if ((nextApproveUserList != null) && (nextApproveUserList.Count > 0)) { msg.NextApproveUserList.AddRange(nextApproveUserList); } this.SaveWorkflowMessage(msg); } catch (Exception exception) { AppLogHelper.Error(exception, "完成工作项失败,workitem_id={0}", new object[] { workItemId }); throw; } }
private static void ProcessError(SysWorkflowMessage msg, Exception ex, string connectionStringOrName) { if (string.IsNullOrWhiteSpace(connectionStringOrName)) { connectionStringOrName = DataContext.BizConnectionStringDefault; } try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress)) { using (BizDataContext context = new BizDataContext(connectionStringOrName, true)) { if (msg.State != SysWorkflowMessageStateEnum.Running) { throw new Exception(string.Format("消息ID:{0}的状态不为Running", msg.MessageId)); } msg.State = SysWorkflowMessageStateEnum.Error; msg.LastErrorMessage = ex.Message; string sql = string.Format("UPDATE SysWorkflowMessage SET STATE = {0}, LastErrorMessage = {1} WHERE MessageId = {2} AND (STATE = {3} or STATE = {4}) ", new object[] { context.AddPrefixToParameterName("NewState"), context.AddPrefixToParameterName("LastErrorMessage"), context.AddPrefixToParameterName("MessageId"), context.AddPrefixToParameterName("OldState1"), context.AddPrefixToParameterName("OldState2") }); if (context.ExecuteNonQuery(sql, new DbParameter[] { context.CreateParameterWithPrefix("NewState", Convert.ToInt32(SysWorkflowMessageStateEnum.Error), typeof(int)), context.CreateParameterWithPrefix("LastErrorMessage", ex.Message, typeof(string)), context.CreateParameterWithPrefix("MessageId", msg.MessageId, typeof(int)), context.CreateParameterWithPrefix("OldState1", Convert.ToInt32(SysWorkflowMessageStateEnum.Running), typeof(int)), context.CreateParameterWithPrefix("OldState2", Convert.ToInt32(SysWorkflowMessageStateEnum.Inited), typeof(int)) }) <= 0) { AppLogHelper.Information("将工作流消息更改为错误状态时更新行数为0: MessageId={0}", new object[] { msg.MessageId }); } } scope.Complete(); } Console.WriteLine(ex.Message); } catch (Exception exception) { AppLogHelper.Error(exception, "将工作流消息更改为错误状态时失败: MessageId={0}", new object[] { msg.MessageId }); Console.WriteLine(exception.Message); } }
/// <summary>Сохраняет лоты пачками, чтобы работало быстрее.</summary> public static void SavePositionsAsPackages(List <Position> allPositions) { AucTraderDbContext context = new AucTraderDbContext(); // Сохраняем по 300 штук. const int MX = 300; int mx = MX; for (int i = 0; i < allPositions.Count; i++) { Position aucPosition = allPositions[i]; context.Positions.AddOrUpdate((Position)aucPosition); // Пришло ли время сохранять. if (i == mx) { mx += MX; context.SaveChanges(); // Пересоздаем контекст, вроде так еще быстрее работает. context.Dispose(); context = new AucTraderDbContext(); } } // Сохраняем то, что осталось. context.SaveChanges(); context.Dispose(); AppLogHelper.TraceInformation(String.Format("Сохранено {0} записей.", allPositions.Count)); }
public int StartProcess(string processName, int startUserId, int relativeObjectId) { int num2; try { int num; ProcessInstanceCacheFactory runtimeContext = new ProcessInstanceCacheFactory(this._context); SysProcess processCache = runtimeContext.PCacheFactory.GetProcessCache(processName); ProcessEngine engine = new ProcessEngine(runtimeContext, processCache); if (processCache.ProcessCategory == 2) { num = engine.StartFormProcess(startUserId, relativeObjectId); } else { num = engine.StartProcess(startUserId, relativeObjectId); } num2 = num; } catch (Exception exception) { AppLogHelper.Error(string.Format("启动流程[{0}], obj={1}失败", processName, relativeObjectId), exception); throw exception; } return(num2); }
public List <SysActivity> GetNextActivityList(string processName) { List <SysActivity> list2; try { List <SysActivity> list = new List <SysActivity>(); SysProcess processCache = this._processCache.GetProcessCache(processName); if (processCache == null) { throw new ApplicationException(string.Format("流程名称[{0}]不正确", processName)); } SysActivity activity = processCache.Activities.FirstOrDefault <SysActivity>(p => p.ActivityType == 1); if (activity != null) { list = (from p in activity.FromTransitions select p.PostActivity).ToList <SysActivity>(); } list2 = list; } catch (Exception exception) { AppLogHelper.Error(string.Format("GetNextActivityList,processName=[{0}]失败", processName), exception); throw exception; } return(list2); }
private void UpdateData2() { try { Dictionary <long, Position> oldPositions = PositionsHelper.GetLastLoadPositions2() .ToDictionary(el => el.Auc); IAucJsonFile file = GetAucJsonFile(); List <Position> newPositions = file.AucPositions.ToList(); Dictionary <long, Position> toUpdatePositions = new Dictionary <long, Position>(); List <Position> newHardPositions = new List <Position>(); List <Position> oldHardPositions = new List <Position>(); DateTime withdrwanDateTime = newPositions.First().LoadDateTime; foreach (Position newPos in newPositions) { Position oldPos = null; // Если не получилось найти, значит лот новый (раньше такого лота не было, позможно перевыставили). if (!oldPositions.TryGetValue(newPos.Auc, out oldPos)) { // Не нашли старой позиции, значит новая, может быть перевыставили и пох, пока что. newHardPositions.Add(newPos); continue; } // Нашли старую идентичную позицию, обновим ее новыми даннымы. if (oldPos != null) { newPos.Id = oldPos.Id; toUpdatePositions.Add(newPos.Auc, newPos); } } foreach (var oldPos in oldPositions.Values) { Position pos; if (!toUpdatePositions.TryGetValue(oldPos.Auc, out pos)) { // Не смогли найти, значит лот выбыл. oldPos.WithdrawnDateTime = withdrwanDateTime; oldHardPositions.Add(oldPos); } } // Закрываем старые лоты. AucTraderDbContextHelper.SavePositionsAsPackages(oldHardPositions); // Обновляем старые данные. AucTraderDbContextHelper.SavePositionsAsPackages(toUpdatePositions.Values.ToList()); // Обновляем старые лоты. AucTraderDbContextHelper.SavePositionsAsPackages(newHardPositions); } catch (Exception e) { AppLogHelper.TraceError("", e); } }
public int StartProcessAsync(long processId, int startUserId, int relativeObjectId) { SysProcess processCache = this._processCache.GetProcessCache(processId); if (processCache == null) { string errorInfo = string.Format("未找到流程,id={0}", processId); AppLogHelper.Error(startUserId, errorInfo, relativeObjectId.ToString()); throw new ApplicationException(errorInfo); } return(this.StartProcessAsync(processCache, startUserId, relativeObjectId, null)); }
private int StartProcessAsync(SysProcess process, int startUserId, int relativeObjectId, List <IApproveUser> nextApproveUserList) { int num3; try { int num = this._context.GetNextIdentity_Int(false); SysProcessInstance instance = new SysProcessInstance { StartTime = new DateTime?(DateTime.Now), InstanceStatus = 0, ObjectId = relativeObjectId, ProcessId = new long?(process.ProcessId), ProcessInstanceId = num, StartUserId = new int?(startUserId) }; if (process.ProcessCategory == 2) { instance.FormInstanceId = new int?(relativeObjectId); T_User user = this._context.FindById <T_User>(new object[] { startUserId }); if (user != null) { T_Department department = this._context.FindById <T_Department>(new object[] { user.Department_ID }); if (department != null) { instance.StartDeptId = new int?(department.Department_ID); } } } int num2 = this._context.GetNextIdentity_Int(false); SysWorkflowMessage msg = new SysWorkflowMessage { ProcessId = process.ProcessId, ProcessInstanceId = num, CreateTime = DateTime.Now, MessageId = num2, MessageType = WorkflowMessageTypeEnum.StartingProcess, OperationUserId = startUserId, State = SysWorkflowMessageStateEnum.Inited }; if ((nextApproveUserList != null) && (nextApproveUserList.Count > 0)) { msg.NextApproveUserList.AddRange(nextApproveUserList); } this.SaveWorkflowMessage(msg); this._context.Insert(instance); num3 = num; } catch (Exception exception) { AppLogHelper.Error(startUserId, exception, "启动流程[{0}]失败, 流程id={1}, 对象id={2}", new object[] { process.ProcessId, process.ProcessName, relativeObjectId }); throw; } return(num3); }
public int StartProcessAsync(string processName, int startUserId, int relativeObjectId, List <IApproveUser> nextApproveUserList) { SysProcess processCache = this._processCache.GetProcessCache(processName); if (processCache == null) { string errorInfo = string.Format("未找到流程name={0}", processName); AppLogHelper.Error(startUserId, errorInfo, relativeObjectId.ToString()); throw new ApplicationException(errorInfo); } return(this.StartProcessAsync(processCache, startUserId, relativeObjectId, nextApproveUserList)); }
/// <summary> /// 初始化 /// </summary> /// <param name="agreement">协议</param> public static ResultObj Init(IAgreementProvider agreement) { AnalyticAgreement.AgreementProvider = agreement; DeviceInfo.IsFirstLoad = true; DeviceInfo.RootFolder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); string dataBasePath = Path.Combine(DeviceInfo.RootFolder, Config.DataBaseName); if (File.Exists(dataBasePath)) { DeviceInfo.IsFirstLoad = false; } //初始化AppLog AppLogHelper.Init(); if (DeviceInfo.IsFirstLoad) { //如果第一次启动则创建数据库表 var db = DbConHelper.NewDbCon(); db.CreateTable <UserCertificate>(); db.CreateTable <UserConfigure>(); } else { var db = DbConHelper.NewDbCon(); var userCertificate = db.Table <UserCertificate>().FirstOrDefault(); if (userCertificate != null) { UserContext.UserId = userCertificate.UserId; UserContext.UserName = userCertificate.UserName; } } HtmlFileManage.Init(); //var ss = CrossDeviceInfo.Current.Platform; //var sse = CrossConnectivity.Current; //var sese = CrossGeolocator.Current; //sese.AllowsBackgroundUpdates = true; //sese.StartListeningAsync(1, 90); //var a = sese.GetPositionAsync(); //var sesea = a.Result; //sese.PositionChanged += (sender, args) => //{ // var sse111 = args.Position; // CrossLocalNotifications.Current.Show("坐标", sse111.Latitude + "," + sse111.Longitude, 0, DateTime.Now.AddSeconds(10)); //}; //var sesaae = CrossMedia.Current; return(ResultObj.Ok()); }
public HtmlDocument LoadDocument(string url) { var htmlDoc = new HtmlDocument(); try { using (var responseStream = CreateRequest(url).GetResponse().GetResponseStream()) { htmlDoc.Load(responseStream, Encoding.UTF8); } } catch (WebException webEx) { AppLogHelper.Log(AppLoggerBase.LogTarget.File, "Error connecting to specified URL: " + webEx.Message + ", retrying..."); } return(htmlDoc); }
public void CancelProcess(int processInstanceId) { try { ProcessInstanceCacheFactory runtimeContext = new ProcessInstanceCacheFactory(this._context); SysProcessInstance processInstanceCache = runtimeContext.GetProcessInstanceCache(processInstanceId); new ProcessEngine(runtimeContext, processInstanceCache).CancelProcess(processInstanceId); } catch (Exception exception) { AppLogHelper.Error(string.Format("撤消流程实例[{0}]失败", processInstanceId), exception); throw; } }
public void RejectApproveWorkItem(int workItemId, string approveComment, long nextActivityId) { try { ProcessInstanceCacheFactory runtimeContext = new ProcessInstanceCacheFactory(this._context); SysProcessInstance processInstanceCacheByWorkItem = runtimeContext.GetProcessInstanceCacheByWorkItem(workItemId); new ProcessEngine(runtimeContext, processInstanceCacheByWorkItem).RejectApproveWorkItem(workItemId, approveComment, nextActivityId); } catch (Exception exception) { AppLogHelper.Error(string.Format("完成【签核流程】的工作项[{0}]失败", workItemId), exception); throw exception; } }
public void CompleteApproveWorkItem(int workItemId, ApproveResultEnum approveResult, string approveComment, List <IApproveUser> nextApproveUserList, bool addUser = false, int?addUserId = new int?()) { try { ProcessInstanceCacheFactory runtimeContext = new ProcessInstanceCacheFactory(this._context); SysProcessInstance processInstanceCacheByWorkItem = runtimeContext.GetProcessInstanceCacheByWorkItem(workItemId); new ProcessEngine(runtimeContext, processInstanceCacheByWorkItem).CompleteApproveWorkItem(workItemId, approveResult, approveComment, nextApproveUserList, addUser, addUserId); } catch (Exception exception) { AppLogHelper.Error(string.Format("完成【签核流程】的工作项[{0}]失败", workItemId), exception); throw exception; } }
public void CompleteWorkItemSelf(int workItemId) { try { ProcessInstanceCacheFactory runtimeContext = new ProcessInstanceCacheFactory(this._context); SysProcessInstance processInstanceCacheByWorkItem = runtimeContext.GetProcessInstanceCacheByWorkItem(workItemId); new ProcessEngine(runtimeContext, processInstanceCacheByWorkItem).CompleteWorkItemSelf(workItemId); } catch (Exception exception) { AppLogHelper.Error(string.Format("完成【普通流程】的工作项,仅完成自身[{0}]失败", workItemId), exception); throw exception; } }
public virtual IUser GetUserById(int userId) { IUser user; try { user = this.GetUser(userId); } catch (Exception exception) { AppLogHelper.Error(exception); throw exception; } return(user); }
public virtual IDepartment GetDepartmentById(int departmentId) { IDepartment dept; try { dept = this.GetDept(departmentId); } catch (Exception exception) { AppLogHelper.Error(exception); throw exception; } return(dept); }
private void secondTimer_Elapsed(object sender, ElapsedEventArgs e) { try { if (!this.mainTimer.Enabled) { this.mainTimer.Start(); } } catch (Exception exception) { AppLogHelper.Error(exception); this.Init(); } }
public int StartProcess(string processName, int startUserId, int relativeObjectId, List <IApproveUser> nextApproveUserList) { int num2; try { ProcessInstanceCacheFactory runtimeContext = new ProcessInstanceCacheFactory(this._context); SysProcess processCache = runtimeContext.PCacheFactory.GetProcessCache(processName); num2 = new ProcessEngine(runtimeContext, processCache).StartProcess(startUserId, relativeObjectId, nextApproveUserList); } catch (Exception exception) { AppLogHelper.Error(string.Format("启动流程[{0}], obj={1}失败", processName, relativeObjectId), exception); throw exception; } return(num2); }
private void BuildSsoAuthenticate(IOwinContext context) { string ssoToken = GetSsoToken(context); this.LogSsoToken(context, ssoToken); if (!string.IsNullOrWhiteSpace(ssoToken)) { SysUser userFromToken; UserManager <SysUser> userManager = new UserManager <SysUser>(new UserStore()); this.TimeExpand(context, userManager); try { userFromToken = LoginUserHelper.GetUserFromToken(ssoToken); } catch (Exception exception) { AppLogHelper.Information(exception.ToString()); userFromToken = null; } if (userFromToken != null) { IAuthenticationManager manager2 = context.Authentication; manager2.SignOut("ExternalCookie"); ClaimsIdentity identity = userManager.CreateIdentity(userFromToken, "ApplicationCookie"); identity.AddUserData(userFromToken); AuthenticationProperties properties = new AuthenticationProperties { IsPersistent = true }; manager2.SignIn(properties, identity); try { Trace.WriteLine(new StringBuilder().Append(" find user: url = ").Append(context.Request.Uri.AbsolutePath).Append("; user_id = ").Append(identity.GetUserId()).Append("; user_name = ").Append(identity.GetUserName())); } catch { // ignored } ClaimsPrincipal principal = new ClaimsPrincipal(identity); context.Request.Set("User", principal); } } }
private void TimeExpand(IOwinContext context, UserManager <SysUser, string> userManager) { try { if (context.Authentication.User != null) { ClaimsIdentity identity = context.Authentication.User.Identity as ClaimsIdentity; if (identity != null) { SysUser userData = identity.GetUserData(); if ((userData != null) && !string.IsNullOrWhiteSpace(userData.SsoToken)) { DateTime now = DateTime.Now; DateTime?lastTokenBeatTime = userData.LastTokenBeatTime; DateTime time2 = lastTokenBeatTime.HasValue ? lastTokenBeatTime.GetValueOrDefault() : DateTime.Now.AddHours(-1.0); TimeSpan span = now - time2; if (span.TotalMinutes > max_ticks) { string accentUrl = LoginUserHelper.AppendTokenToUrl(LoginUserHelper.TokenValidateUrl, userData); string errMsg = string.Empty; if (!LoginUserHelper.ExtSsoTime(accentUrl, userData.SsoToken, out errMsg)) { AppLogHelper.Information(errMsg); } IAuthenticationManager manager = context.Authentication; manager.SignOut("ExternalCookie"); ClaimsIdentity identity2 = userManager.CreateIdentity(userData, "ApplicationCookie"); identity2.AddUserData(userData); AuthenticationProperties properties = new AuthenticationProperties { IsPersistent = true }; manager.SignIn(properties, identity2); } } } } } catch (Exception exception) { AppLogHelper.Information(exception.ToString()); } }
public virtual IUser GetDepartmentManager(int departmentId) { IUser user2; try { T_Department dept = this.GetDept(departmentId); if ((dept != null) && dept.Manager_ID.HasValue) { return(this.GetUser(dept.Manager_ID.Value)); } user2 = null; } catch (Exception exception) { AppLogHelper.Error(exception); throw exception; } return(user2); }
public virtual List <IRole> GetRoles() { List <IRole> list2; DataContext ctx = this.GetContext(); try { list2 = ctx.Set <T_Role>().Cast <IRole>().ToList <IRole>(); } catch (Exception exception) { AppLogHelper.Error(exception); throw exception; } finally { this.ReleaseContext(ctx); } return(list2); }
public virtual List <IUser> GetUsers() { List <IUser> list2; DataContext ctx = this.GetContext(); try { list2 = ctx.FetchAll <T_User>().Cast <IUser>().ToList <IUser>(); } catch (Exception exception) { AppLogHelper.Error(exception); throw exception; } finally { this.ReleaseContext(ctx); } return(list2); }
public virtual List <IUser> GetDepartmentRoleUsers(int departmentId, int roleId) { List <IUser> list; DataContext ctx = this.GetContext(); try { string sql = string.Format("select a.* from T_User a left join T_User_Role b on a.User_ID = b.User_ID where b.Role_ID = {0} and a.Department_ID = {1}", roleId, departmentId); list = ctx.ExecuteObjectSet <T_User>(sql, new DbParameter[0]).Cast <IUser>().ToList <IUser>(); } catch (Exception exception) { AppLogHelper.Error(exception); throw exception; } finally { this.ReleaseContext(ctx); } return(list); }
public virtual List <IRole> GetUserRoles(int userId) { List <IRole> list; DataContext ctx = this.GetContext(); try { string sql = string.Format("select a.* from T_Role a left join T_User_Role b on a.Role_ID = b.Role_ID where b.User_ID = {0}", userId); list = ctx.ExecuteObjectSet <T_Role>(sql, new DbParameter[0]).Cast <IRole>().ToList <IRole>(); } catch (Exception exception) { AppLogHelper.Error(exception); throw exception; } finally { this.ReleaseContext(ctx); } return(list); }
public virtual bool IsRootDepartment(int departmentId) { bool flag2; try { bool flag = false; T_Department dept = this.GetDept(departmentId); if (!(dept.Parent_ID.HasValue && (dept.Parent_ID.Value != 0))) { flag = true; } flag2 = flag; } catch (Exception exception) { AppLogHelper.Error(exception); throw exception; } return(flag2); }
public virtual List <IDepartment> GetChildDepartments(int departmentId) { List <IDepartment> list2; DataContext ctx = this.GetContext(); try { string condition = string.Format("Parent_ID = {0}", departmentId); list2 = ctx.Where <T_Department>(condition, new DbParameter[0]).Cast <IDepartment>().ToList <IDepartment>(); } catch (Exception exception) { AppLogHelper.Error(exception); throw exception; } finally { this.ReleaseContext(ctx); } return(list2); }
public bool DeleteRoleFunction(int roleId) { try { using (BizDataContext context = new BizDataContext(true)) { List <T_Role_Function> list = context.Where <T_Role_Function>(r => r.Role_ID == roleId); if ((list != null) && (list.Count > 0)) { foreach (T_Role_Function function in list) { context.Delete(function); } } } return(true); } catch (Exception exception) { AppLogHelper.Error(exception); return(false); } }
public List <SysActivity> GetNextActivityList(int workItemId) { List <SysActivity> list2; try { SysWorkItem item; List <SysActivity> list = new List <SysActivity>(); new ProcessInstanceCacheFactory(this._context).GetProcessInstanceCacheByWorkItem(workItemId, out item); SysActivity activity = item.ActivityInstance.Activity; if (activity != null) { list = (from p in activity.FromTransitions select p.PostActivity).ToList <SysActivity>(); } list2 = list; } catch (Exception exception) { AppLogHelper.Error(string.Format("GetNextActivityList,workItemId=[{0}]失败", workItemId), exception); throw exception; } return(list2); }