public override void Begin(ContextBase context) { m_entryAction = context.ActionOnEnter; m_levelToLoad = context.Level; Game.Instance.LoadLevel("Game"); }
public void Restart() { ContextBase context = new ContextBase(); context.ActionOnEnter = m_entryAction; context.Level = m_levelToLoad; Game.Instance.GameState.ChangeState(new InGameState(), context); }
private void ReturnToEditor() { ContextBase context = new ContextBase(); context.ActionOnEnter = ContextBase.EntryAction.GameEntry; context.Level = m_levelToLoad; Game.Instance.GameState.ChangeState(new EditorState(), context); }
public override void Begin(ContextBase context) { m_entryAction = context.ActionOnEnter; m_levelToLoad = context.Level; Game.Instance.LoadLevel("Editor"); m_editor = Game.Instance.UICore.Create<MapEditor>(Resources.Load("Prefabs/UI/EditorMenu") as GameObject); }
internal Function(ContextBase parent, TypeBase argsType, TypeBase valueType = null) : base(parent) { _order = CodeArgs.NextOrder++; ArgsType = argsType; ValueType = valueType; StopByObjectIds(); }
Result ElseResult(ContextBase context, Category category) { if(Else == null) return context .RootContext.VoidType.Result(category); return BranchResult(context, category, Else); }
protected override Result Result (ContextBase context, Category category, Value left, Value right) { var target = context.ResultAsReference(category.Typed, left); return target .Type .FindRecentCompoundView .AccessViaPositionExpression(category, right.Result(context)) .ReplaceArg(target); }
protected override Result Result(ContextBase context, Category category, TerminalSyntax token) { var data = Lexer.Instance.ExtractText(token.Token); return context .RootContext.BitType.Array(BitsConst.BitSize(data[0].GetType())) .TextItem .Array(data.Length) .TextItem .Result (category, () => CodeBase.BitsConst(BitsConst.ConvertAsText(data)), CodeArgs.Void); }
public override void SetUp() { base.SetUp(); this.ExtractWorkingCopy(); this.ExtractRepos(); this.cmd = new LogCommand(); this.uiShell = new MyUIShellImpl(); this.ctx = new ContextBase( ); this.uiShell.Context = this.ctx; this.ctx.UIShell = this.uiShell; }
Result BranchResult(ContextBase context, Category category, Value syntax) { var result = context.Result(category.Typed, syntax); if(result == null) return null; var branchResult = result; var commonType = CommonType(context); return branchResult.Type .Conversion(category.Typed, commonType) .ReplaceArg(branchResult) & category; }
Result InternalResult(ContextBase context, Category category) { var commonType = CommonType(context); if(category <= Category.Type.Replenished) return commonType.Result(category); var branchCategory = category & Category.Code.Replenished; var condResult = CondResult(context, category); var thenResult = ThenResult(context, branchCategory); var elseResult = ElseResult(context, branchCategory); return commonType .Result ( category, () => condResult.Code.ThenElse(thenResult.Code, elseResult.Code), () => condResult.Exts + thenResult.Exts + elseResult.Exts ); }
internal Result Execute ( Category category, ResultCache left, Syntax token, ContextBase context, Parser.Value right) { var trace = ObjectId.In(34) && category.HasCode; StartMethodDump(trace, category, left, token, context, right); try { var metaFeature = ((IMetaImplementation) Feature).Function; if(metaFeature != null) return metaFeature.Result(category, left, context, right); BreakExecution(); var result = Feature.Result(category.Typed, token, context, right); Dump(nameof(result), result); Dump("ConverterPath.Destination.CheckedReference", ConverterPath.Destination.CheckedReference); Dump("ConverterPath.Execute", ConverterPath.Execute(Category.Code)); BreakExecution(); var replaceAbsolute = result .ReplaceAbsolute (ConverterPath.Destination.CheckedReference, ConverterPath.Execute); Dump(nameof(replaceAbsolute), replaceAbsolute); if(trace) Dump(nameof(left), left.Code); BreakExecution(); return ReturnMethodDump(replaceAbsolute.ReplaceArg(left)); } finally { EndMethodDump(); } }
static IEnumerable<ContextBase> FunctionContexts(ContextBase context, Value body) => ((FunctionBodyType) context.ResultCache(body).Type) .Functions .Select(item => item.CreateSubContext(false));
public async Task <bool> Transferir(int idContaCorrenteOrigem, int idContaCorrenteDestino, decimal valor) { if (valor <= 0) { throw new ApplicationException("Valor da transferência deve ser maior que zero"); } if (idContaCorrenteOrigem == idContaCorrenteDestino) { throw new ApplicationException("Conta de origem não pode ser igual a de destino"); } using (var data = new ContextBase(_OptionsBuilder)) { var contacorrenteOrigem = await Task.Run(() => data.ContaCorrente.Include(c => c.Agencia).Where(cc => cc.Id == idContaCorrenteOrigem).FirstOrDefaultAsync()); var contacorrenteDestino = await Task.Run(() => data.ContaCorrente.Include(c => c.Agencia).Where(cc => cc.Id == idContaCorrenteDestino).FirstOrDefaultAsync()); if (idContaCorrenteOrigem == 0 || contacorrenteOrigem == null) { throw new ApplicationException("Conta corrente de origem não localizada"); } if (idContaCorrenteDestino == 0 || contacorrenteDestino == null) { throw new ApplicationException("Conta corrente de destino não localizada"); } bool contaOrigemPossuiSaldoSuficiente = await Task.Run(() => ObterSaldo(idContaCorrenteOrigem)) < valor; if (contaOrigemPossuiSaldoSuficiente) { throw new ApplicationException("Conta de origem possui saldo insuficiente"); } ContaCorrenteLancamentos contaCorrenteLancamentosOrigem = new ContaCorrenteLancamentos { ContaCorrente = contacorrenteOrigem, DataCriacao = DateTime.Now, DataLancamento = DateTime.Now, TipoLancamento = Entities.Enums.TipoLancamentoEnum.Debito, Valor = valor }; await data.ContaCorrenteLancamentos.AddAsync(contaCorrenteLancamentosOrigem); ContaCorrenteLancamentos contaCorrenteLancamentosDestino = new ContaCorrenteLancamentos { ContaCorrente = contacorrenteDestino, DataCriacao = DateTime.Now, DataLancamento = DateTime.Now, TipoLancamento = Entities.Enums.TipoLancamentoEnum.Credito, Valor = valor }; await data.ContaCorrenteLancamentos.AddAsync(contaCorrenteLancamentosDestino); int id = await data.SaveChangesAsync(); return(id > 0); } }
public void OnResume(ContextBase context) { }
protected override Result Result (ContextBase context, Category category, TerminalSyntax token) => context.RootContext.BitType.Result(category, BitsConst.Convert(token.Id));
private void ShowLabAccess() { dgAccess.DataSource = null; dgAccess.DataBind(); ClientPrivilege selectedPriv = cblPriv.Items.CalculatePriv(); if (selectedPriv == 0) { return; } if (pp1.SelectedPeriod > DateTime.Now) { return; } if (pp1.SelectedPeriod <= DateTime.Now && pp1.SelectedPeriod.AddMonths(1) > DateTime.Now && !ContextBase.Updated()) { try { // to handle missing data error WriteData writeData = new WriteData(Provider); writeData.UpdateTables(BillingCategory.Tool | BillingCategory.Room); ContextBase.Updated(true); } catch (Exception ex) { SendEmail.SendDebugEmail(CurrentUser.ClientID, "sselIndReports.AggSumUsage.ShowLabAccess", "An error occurred in WriteData.UpdateTables while trying to display the Aggregate User Summary Report.", ex); ContextBase.Updated(false); } } //get all access data for period // [2021-04-19 jg] This report is only availabe to Administrator privilege so it doesn't make sense to filter to a single org. // var orgId = DBNull.Value; var userOrgId = Convert.ToInt32(rblUserOrg.SelectedValue); DataSet ds = new DataSet(); using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnSselData"].ConnectionString)) using (var cmd = new SqlCommand("sselData.dbo.AggUsage_Select", conn) { CommandType = CommandType.StoredProcedure }) using (var adap = new SqlDataAdapter(cmd)) { cmd.Parameters.AddWithValue("Period", pp1.SelectedPeriod, SqlDbType.DateTime); cmd.Parameters.AddWithValue("Privs", (int)selectedPriv, SqlDbType.Int); if (userOrgId >= 0) { cmd.Parameters.AddWithValue("SelOrg", userOrgId, SqlDbType.Int); } //if (CurrentUser.HasPriv(ClientPrivilege.Executive)) // cmd.Parameters.AddWithValue("OrgID", orgId, SqlDbType.Int); adap.Fill(ds); } var dtRaw = ds.Tables[0]; var dtRoom = ds.Tables[1]; var dtUsage = new DataTable(); dtUsage.Columns.Add("ClientID", typeof(int)); dtUsage.Columns.Add("DisplayName", typeof(string)); dtUsage.Columns.Add("Manager", typeof(string)); dtUsage.Columns.Add("URLdata", typeof(string)); foreach (DataRow dr in dtRoom.Rows) { dtUsage.Columns.Add(EntriesColumn(dr), typeof(double)); if (Convert.ToBoolean(dr["PassbackRoom"])) { dtUsage.Columns.Add(HoursColumn(dr), typeof(double)); } } int dateInt; //used to prevent casual snooping into the indDet page int temp = 0; //store a temporary value to test if it's zero DataRow nr; DataRow[] fdr; foreach (DataRow dr in dtRaw.Rows) { fdr = dtUsage.Select(string.Format("ClientID = {0}", dr["ClientID"])); if (fdr.Length == 0) //add row to table { nr = dtUsage.NewRow(); nr["ClientID"] = dr["ClientID"]; nr["DisplayName"] = dr["DisplayName"]; nr["Manager"] = dr["Manager"]; dateInt = 200 * (pp1.SelectedYear + Convert.ToInt32(dr["ClientID"])) + 3 * pp1.SelectedMonth + (Convert.ToInt32(dr["ClientID"]) % 10); nr["URLdata"] = string.Format("URLdata={0:0000}{1}", dr["ClientID"], dateInt); dtUsage.Rows.Add(nr); } else { nr = fdr[0]; } bool isPassbackRoom = false; DataRow[] rows = dtRoom.Select(string.Format("RoomID = {0}", dr["RoomID"])); isPassbackRoom = Convert.ToBoolean(rows[0]["PassbackRoom"]); //2008-10-22 Sanrine wants to see non antipassback room, now we have DC lab and Organics Bay if (Convert.ToDouble(dr["Hours"]) > 0 && isPassbackRoom) { nr[EntriesColumn(dr)] = dr["Entries"]; nr[HoursColumn(dr)] = dr["Hours"]; } else if (!isPassbackRoom) { //for non Passbackroom, the Hours entry is null, Entries values are still valid temp = Convert.ToInt32(dr["Entries"]); if (temp != 0) { nr[EntriesColumn(dr)] = temp; } } } //this is the footer row nr = dtUsage.NewRow(); nr["ClientID"] = 0; nr["DisplayName"] = "zzzzzzzz"; nr["Manager"] = string.Empty; nr["URLdata"] = string.Empty; foreach (DataRow dr in dtRoom.Rows) { var entriesCol = EntriesColumn(dr); var hoursCol = HoursColumn(dr); var sumEntries = dtUsage.Compute($"SUM({entriesCol})", string.Empty); nr[entriesCol] = sumEntries; if (Convert.ToBoolean(dr["PassbackRoom"])) { var sumHours = dtUsage.Compute($"SUM({hoursCol})", string.Empty); nr[hoursCol] = sumHours; } } dtUsage.Rows.Add(nr); BoundField displayNameCol = new BoundField(); displayNameCol.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; displayNameCol.HeaderStyle.Font.Bold = true; displayNameCol.HeaderText = "Lab User"; displayNameCol.ItemStyle.HorizontalAlign = HorizontalAlign.Center; dgAccess.Columns.Add(displayNameCol); BoundField managerCol = new BoundField(); managerCol.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; managerCol.HeaderStyle.Font.Bold = true; managerCol.ItemStyle.HorizontalAlign = HorizontalAlign.Center; managerCol.HtmlEncode = false; managerCol.HeaderText = "Manager"; managerCol.DataField = "Manager"; dgAccess.Columns.Add(managerCol); foreach (DataRow dr in dtRoom.Rows) { BoundField entryCol = new BoundField(); entryCol.HeaderStyle.Width = Unit.Pixel(120); entryCol.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; entryCol.HeaderStyle.Font.Bold = true; entryCol.ItemStyle.Width = Unit.Pixel(120); entryCol.ItemStyle.HorizontalAlign = HorizontalAlign.Center; entryCol.DataFormatString = "{0:0.#}"; entryCol.HeaderText = dr["Room"].ToString() + " Entries"; entryCol.DataField = EntriesColumn(dr); dgAccess.Columns.Add(entryCol); if (Convert.ToBoolean(dr["PassbackRoom"])) { BoundField hoursCol = new BoundField(); hoursCol.HeaderStyle.Width = Unit.Pixel(120); hoursCol.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; hoursCol.HeaderStyle.Font.Bold = true; hoursCol.ItemStyle.Width = Unit.Pixel(120); hoursCol.ItemStyle.HorizontalAlign = HorizontalAlign.Center; hoursCol.DataFormatString = "{0:0.##}"; hoursCol.HeaderText = dr["Room"].ToString() + " Hours"; hoursCol.DataField = HoursColumn(dr); dgAccess.Columns.Add(hoursCol); } } dtUsage.DefaultView.Sort = "DisplayName"; dgAccess.DataSource = dtUsage; dgAccess.DataBind(); }
Result ITerminal.Result(ContextBase context, Category category, TerminalSyntax token) => Result(context, category);
protected override Result Result(ContextBase context, Category category) => context .FindRecentFunctionContextObject .CreateValueReferenceResult(category);
public UserController(ContextBase cb) { db = cb; }
/// <summary> /// 公共登录验证 /// </summary> /// <param name="vt">登录类型</param> /// <param name="mo">用户信息</param> /// <param name="isremember">记住账号</param> /// <returns></returns> private ActionResultVM ValidateLogin(ValidateloginType vt, Domain.UserInfo mo, bool isremember = true) { var vm = new ActionResultVM(); string sql = string.Empty; using var db = new ContextBase(); var uiR = db.UserInfo; Domain.UserInfo outMo = new Domain.UserInfo(); switch (vt) { case ValidateloginType.local: if (string.IsNullOrWhiteSpace(mo.UserName) || string.IsNullOrWhiteSpace(mo.UserPwd)) { vm.msg = "用户名或密码不能为空"; return(vm); } else { mo.UserPwd = Core.CalcTo.MD5(mo.UserPwd); //邮箱登录 if (Fast.ParsingTo.IsMail(mo.UserName)) { outMo = uiR.FirstOrDefault(x => x.UserMail == mo.UserName && x.UserPwd == mo.UserPwd); } else { outMo = uiR.FirstOrDefault(x => x.UserName == mo.UserName && x.UserPwd == mo.UserPwd); } } break; case ValidateloginType.qq: outMo = uiR.FirstOrDefault(x => x.OpenId1.Equals(mo.OpenId1)); break; case ValidateloginType.weibo: outMo = uiR.FirstOrDefault(x => x.OpenId2.Equals(mo.OpenId2)); break; case ValidateloginType.github: outMo = uiR.FirstOrDefault(x => x.OpenId3.Equals(mo.OpenId3)); break; case ValidateloginType.taobao: outMo = uiR.FirstOrDefault(x => x.OpenId4.Equals(mo.OpenId4)); break; case ValidateloginType.microsoft: outMo = uiR.FirstOrDefault(x => x.OpenId5.Equals(mo.OpenId5)); break; case ValidateloginType.dingtalk: outMo = uiR.FirstOrDefault(x => x.OpenId6.Equals(mo.OpenId6)); break; } if (outMo == null || outMo.UserId == 0) { vm.msg = "用户名或密码错误"; return(vm); } if (outMo.LoginLimit == 1) { vm.msg = "用户已被禁止登录"; return(vm); } //刷新登录标记 outMo.UserLoginTime = DateTime.Now; outMo.UserSign = outMo.UserLoginTime.Value.ToTimestamp().ToString(); uiR.Update(outMo); var num = db.SaveChanges(); if (num < 1) { vm.msg = "请求登录被拒绝"; return(vm); } try { //登录标记 缓存5分钟,绝对过期 var usk = "UserSign_" + outMo.UserId; Core.CacheTo.Set(usk, outMo.UserSign, 5 * 60, false); //写入授权 SetAuth(HttpContext, outMo, isremember); //生成Token vm.data = Func.UserAuthAid.TokenMake(outMo); vm.Set(ARTag.success); } catch (Exception ex) { vm.Set(ex); } return(vm); }
public ActionResultVM WriteSave(UserWriting mo, string TagIds) { var vm = new ActionResultVM(); try { var uinfo = new Application.UserAuthService(HttpContext).Get(); using (var db = new ContextBase()) { //验证邮箱 if (GlobalTo.GetValue <bool>("Common:MailValid") && db.UserInfo.Find(uinfo.UserId).UserMailValid != 1) { vm.Set(ARTag.unauthorized); vm.Msg = "请验证邮箱后再操作"; return(vm); } //有昵称 if (string.IsNullOrWhiteSpace(uinfo.Nickname)) { vm.Set(ARTag.refuse); vm.Msg = "请填写昵称后再操作"; return(vm); } var lisTagId = new List <int>(); TagIds.Split(',').ToList().ForEach(x => lisTagId.Add(Convert.ToInt32(x))); var lisTagName = Application.CommonService.TagsQuery().Where(x => lisTagId.Contains(x.TagId)).ToList(); mo.Uid = uinfo.UserId; mo.UwCreateTime = DateTime.Now; mo.UwUpdateTime = mo.UwCreateTime; mo.UwLastUid = mo.Uid; mo.UwLastDate = mo.UwCreateTime; mo.UwReplyNum = 0; mo.UwReadNum = 0; mo.UwOpen = 1; mo.UwLaud = 0; mo.UwMark = 0; mo.UwStatus = 1; db.UserWriting.Add(mo); db.SaveChanges(); var listwt = new List <UserWritingTags>(); foreach (var tag in lisTagId) { var wtmo = new UserWritingTags { UwId = mo.UwId, TagId = tag, TagName = lisTagName.FirstOrDefault(x => x.TagId == tag).TagName }; listwt.Add(wtmo); } db.UserWritingTags.AddRange(listwt); //标签热点+1 var listTagId = listwt.Select(x => x.TagId.Value); var listTags = db.Tags.Where(x => listTagId.Contains(x.TagId)).ToList(); listTags.ForEach(x => x.TagHot += 1); db.Tags.UpdateRange(listTags); int num = db.SaveChanges(); vm.Data = mo.UwId; vm.Set(num > 0); } } catch (Exception ex) { Core.ConsoleTo.Log(ex); vm.Set(ex); } return(vm); }
/// <summary> /// 回复 /// </summary> /// <param name="mo">回复信息</param> /// <param name="um">消息通知</param> /// <returns></returns> public ActionResultVM LsitReplySave(UserReply mo, UserMessage um) { var vm = new ActionResultVM(); var uinfo = new Application.UserAuthService(HttpContext).Get(); if ((uinfo.UserId != 0 && string.IsNullOrWhiteSpace(uinfo.Nickname)) || (uinfo.UserId == 0 && string.IsNullOrWhiteSpace(mo.UrAnonymousName))) { vm.Set(ARTag.refuse); vm.Msg = "昵称不能为空"; return(vm); } mo.Uid = uinfo.UserId; var now = DateTime.Now; //回复消息 um.UmId = Core.UniqueTo.LongId().ToString(); um.UmTriggerUid = mo.Uid; um.UmType = Application.EnumService.MessageType.UserWriting.ToString(); um.UmTargetId = mo.UrTargetId; um.UmAction = 2; um.UmStatus = 1; um.UmContent = mo.UrContent; um.UmCreateTime = now; using (var db = new ContextBase()) { //回复内容 mo.UrCreateTime = now; mo.UrStatus = 1; mo.UrTargetPid = 0; mo.UrTargetType = Application.EnumService.ReplyType.UserWriting.ToString(); mo.UrAnonymousLink = Fast.ParsingTo.JsSafeJoin(mo.UrAnonymousLink); db.UserReply.Add(mo); //回填文章最新回复记录 var mow = db.UserWriting.FirstOrDefault(x => x.UwId.ToString() == mo.UrTargetId); if (mow != null) { mow.UwReplyNum += 1; mow.UwLastUid = mo.Uid; mow.UwLastDate = now; um.UmTargetIndex = mow.UwReplyNum; db.UserWriting.Update(mow); } if (um.Uid != um.UmTriggerUid) { db.UserMessage.Add(um); } int num = db.SaveChanges(); vm.Set(num > 0); } return(vm); }
public DKController(ContextBase cb) { db = cb; }
public GenericRepository(ContextBase context) { _context = context; }
public FormViewComponent(ContextBase cb) { db = cb; }
Result ISuffix.Result(ContextBase context, Category category, Value left) => Result(context, category, left);
/// <summary> /// 登录授权回调 /// </summary> /// <param name="authorizeResult">获取授权码以及防伪标识</param> /// <returns></returns> public IActionResult AuthCallback(LoginBase.AuthorizeResult authorizeResult) { var vm = new ActionResultVM(); try { if (string.IsNullOrWhiteSpace(authorizeResult.code)) { vm.Set(ARTag.unauthorized); } else { //唯一标示 string openId = string.Empty; //注册信息 var mo = new Domain.UserInfo() { LoginLimit = 0, UserSex = 0, UserCreateTime = DateTime.Now }; //头像 string avatar = string.Empty; //头像(高清) string avatarhd = string.Empty; Enum.TryParse(RouteData.Values["id"]?.ToString(), true, out ValidateloginType vtype); switch (vtype) { case ValidateloginType.qq: { //获取 access_token var tokenEntity = QQ.AccessToken(new QQ_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 OpendId var openidEntity = QQ.OpenId(new QQ_OpenId_RequestEntity() { access_token = tokenEntity.access_token }); //获取 UserInfo var userEntity = QQ.OpenId_Get_User_Info(new QQ_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = openidEntity.openid }); //身份唯一标识 openId = openidEntity.openid; mo.OpenId1 = openId; mo.Nickname = userEntity.nickname; mo.UserSex = userEntity.gender == "男" ? 1 : 2; mo.UserSay = ""; mo.UserUrl = ""; avatar = userEntity.figureurl_qq_1; avatarhd = userEntity.figureurl_qq_2; } break; case ValidateloginType.weibo: { //获取 access_token var tokenEntity = Weibo.AccessToken(new Weibo_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 access_token 的授权信息 var tokenInfoEntity = Weibo.GetTokenInfo(new Weibo_GetTokenInfo_RequestEntity() { access_token = tokenEntity.access_token }); //获取 users/show var userEntity = Weibo.UserShow(new Weibo_UserShow_RequestEntity() { access_token = tokenEntity.access_token, uid = Convert.ToInt64(tokenInfoEntity.uid) }); openId = tokenEntity.access_token; mo.OpenId2 = openId; mo.Nickname = userEntity.screen_name; mo.UserSex = userEntity.gender == "m" ? 1 : userEntity.gender == "f" ? 2 : 0; mo.UserSay = userEntity.description; mo.UserUrl = userEntity.domain; avatar = userEntity.profile_image_url; avatarhd = userEntity.avatar_large; } break; case ValidateloginType.github: { //获取 access_token var tokenEntity = GitHub.AccessToken(new GitHub_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = GitHub.User(new GitHub_User_RequestEntity() { access_token = tokenEntity.access_token }); openId = userEntity.id.ToString(); mo.OpenId3 = openId; mo.Nickname = userEntity.name; mo.UserSay = userEntity.bio; mo.UserUrl = userEntity.blog; mo.UserMail = userEntity.email; avatar = userEntity.avatar_url; avatarhd = userEntity.avatar_url; } break; case ValidateloginType.taobao: { //获取 access_token var tokenEntity = TaoBao.AccessToken(new TaoBao_AccessToken_RequestEntity() { code = authorizeResult.code }); openId = tokenEntity.open_uid; mo.OpenId4 = openId; mo.Nickname = "淘宝用户"; } break; case ValidateloginType.microsoft: { //获取 access_token var tokenEntity = MicroSoft.AccessToken(new MicroSoft_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = MicroSoft.User(new MicroSoft_User_RequestEntity() { access_token = tokenEntity.access_token }); openId = userEntity.id.ToString(); mo.OpenId5 = openId; mo.Nickname = userEntity.last_name + userEntity.first_name; mo.UserMail = userEntity.emails?["account"].ToStringOrEmpty(); } break; case ValidateloginType.dingtalk: { //获取 user var userEntity = DingTalk.User(new DingTalk_User_RequestEntity(), authorizeResult.code); openId = userEntity.openid; mo.OpenId6 = openId; mo.Nickname = userEntity.nick; } break; } mo.UserCreateTime = DateTime.Now; mo.UserName = openId; mo.UserPwd = Core.CalcTo.MD5(openId); if (!string.IsNullOrWhiteSpace(avatar)) { mo.UserPhoto = Core.UniqueTo.LongId().ToString() + ".jpg"; } if (string.IsNullOrWhiteSpace(openId)) { vm.Set(ARTag.unauthorized); vm.msg = "身份验证失败"; } else { //判断是绑定操作 bool isbind = User.Identity.IsAuthenticated && authorizeResult.state.StartsWith("bind"); if (isbind) { int uid = new Func.UserAuthAid(HttpContext).Get().UserId; using (var db = new ContextBase()) { //检测是否绑定其它账号 var queryIsBind = db.UserInfo.Where(x => x.UserId != uid); switch (vtype) { case ValidateloginType.qq: queryIsBind = queryIsBind.Where(x => x.OpenId1 == openId); break; case ValidateloginType.weibo: queryIsBind = queryIsBind.Where(x => x.OpenId2 == openId); break; case ValidateloginType.github: queryIsBind = queryIsBind.Where(x => x.OpenId3 == openId); break; case ValidateloginType.taobao: queryIsBind = queryIsBind.Where(x => x.OpenId4 == openId); break; case ValidateloginType.microsoft: queryIsBind = queryIsBind.Where(x => x.OpenId5 == openId); break; case ValidateloginType.dingtalk: queryIsBind = queryIsBind.Where(x => x.OpenId6 == openId); break; } if (queryIsBind.Count() > 0) { return(Content("已绑定其它账号,不能重复绑定")); } var userInfo = db.UserInfo.Find(uid); switch (vtype) { case ValidateloginType.qq: userInfo.OpenId1 = openId; break; case ValidateloginType.weibo: userInfo.OpenId2 = openId; break; case ValidateloginType.github: userInfo.OpenId3 = openId; break; case ValidateloginType.taobao: userInfo.OpenId4 = openId; break; case ValidateloginType.microsoft: userInfo.OpenId5 = openId; break; case ValidateloginType.dingtalk: userInfo.OpenId6 = openId; break; } db.UserInfo.Update(userInfo); db.SaveChanges(); } return(Redirect("/user/setting")); } else { using var db = new ContextBase(); Domain.UserInfo vmo = null; switch (vtype) { case ValidateloginType.qq: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId1 == openId); break; case ValidateloginType.weibo: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId2 == openId); break; case ValidateloginType.github: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId3 == openId); break; case ValidateloginType.taobao: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId4 == openId); break; case ValidateloginType.microsoft: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId5 == openId); break; case ValidateloginType.dingtalk: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId6 == openId); break; } //未注册 if (vmo == null) { var ruvm = RegisterUser(mo); if (ruvm.code == 200) { vm = ValidateLogin(vtype, mo); //拉取头像 if (vm.code == 200 && (!string.IsNullOrWhiteSpace(avatar) || !string.IsNullOrWhiteSpace(avatarhd))) { try { using var wc = new System.Net.WebClient(); var rootdir = GlobalTo.WebRootPath + "/" + (GlobalTo.GetValue("StaticResource:RootDir").TrimStart('/').TrimEnd('/') + "/"); var path = GlobalTo.GetValue("StaticResource:AvatarPath").TrimEnd('/').TrimStart('/') + '/'; var fullpath = rootdir + path; if (!System.IO.Directory.Exists(fullpath)) { System.IO.Directory.CreateDirectory(fullpath); } if (!string.IsNullOrWhiteSpace(avatar)) { wc.DownloadFile(avatar, fullpath + mo.UserPhoto); } if (!string.IsNullOrWhiteSpace(avatarhd)) { wc.DownloadFile(avatarhd, fullpath + mo.UserPhoto.Replace(".jpg", "_lg.jpg")); } } catch (Exception) { } } } else { vm.msg = ruvm.msg; } } else { vm = ValidateLogin(vtype, vmo); } } } } } catch (Exception ex) { vm.Set(ex); Core.ConsoleTo.Log(ex); } //成功 if (vm.code == 200) { var rurl = Request.Cookies["ReturnUrl"]; rurl = string.IsNullOrWhiteSpace(rurl) ? "/" : rurl; if (rurl.StartsWith("http")) { rurl += "?cookie=ok"; } return(Redirect(rurl)); } else { string msg = "【登录失败】( " + vm.msg + " )".ToEncode(); return(Redirect("/home/error?msg=" + msg)); } }
Result IInfix.Result (ContextBase context, Category category, Value left, Value right) => Result(context, category, left, right);
public ItemController(ContextBase cb) { db = cb; }
Result IPrefix.Result (ContextBase context, Category category, Value right, Syntax token) => Result(context, category, right, token);
public CodeController(ContextBase cb) { db = cb; }
protected override Result Result(ContextBase context, Category category) => context.ArgReferenceResult(category);
/// <summary> /// Gist代码片段,同步到GitHub、Gitee /// </summary> /// <param name="UserId"></param> /// <returns></returns> public static ActionResultVM GistSync(int UserId = 1) { var vm = new ActionResultVM(); try { //日志 var listLog = new List <object>(); using var db = new ContextBase(); var listGist = db.Gist.Where(x => x.Uid == UserId).OrderBy(x => x.GistCreateTime).ToList(); var codes = listGist.Select(x => x.GistCode).ToList(); var listGs = db.GistSync.Where(x => x.Uid == UserId).ToList(); //执行命令记录 var dicSync = new Dictionary <string, string>(); foreach (var gist in listGist) { var gs = listGs.FirstOrDefault(x => x.GistCode == gist.GistCode); //新增 if (gs == null) { dicSync.Add(gist.GistCode, "add"); } else if (gs?.GsGitHubTime != gist.GistUpdateTime || gs?.GsGiteeTime != gist.GistUpdateTime) { dicSync.Add(gist.GistCode, "update"); } } //删除 var delCode = listGs.Select(x => x.GistCode).Except(listGist.Select(x => x.GistCode)).ToList(); var token_gh = GlobalTo.GetValue("ApiKey:GitHub:GistToken"); var token_ge = GlobalTo.GetValue("ApiKey:Gitee:GistToken"); listLog.Add("同步新增、修改:" + dicSync.Count + " 条"); listLog.Add(dicSync); //同步新增、修改 if (dicSync.Count > 0) { foreach (var key in dicSync.Keys) { var st = dicSync[key]; var gist = listGist.FirstOrDefault(x => x.GistCode == key); var gs = listGs.FirstOrDefault(x => x.GistCode == key); //发送主体 #region MyRegion var jo = new JObject { ["access_token"] = token_ge,//only gitee ["description"] = gist.GistRemark, ["public"] = gist.GistOpen == 1 }; var jc = new JObject { ["content"] = gist.GistContent }; var jf = new JObject { [gist.GistFilename] = jc }; jo["files"] = jf; #endregion switch (st) { case "add": { var gsmo = new GistSync() { GistCode = key, Uid = UserId, GistFilename = gist.GistFilename }; //GitHub { var hwr = HttpTo.HWRequest("https://api.github.com/gists", "POST", jo.ToJson()); hwr.Headers.Add(HttpRequestHeader.Authorization, "token " + token_gh); hwr.ContentType = "application/json"; hwr.UserAgent = GlobalTo.GetValue("UserAgent"); var rt = HttpTo.Url(hwr); gsmo.GsGitHubId = rt.ToJObject()["id"].ToString(); gsmo.GsGitHubTime = gist.GistUpdateTime; } //Gitee { var hwr = HttpTo.HWRequest("https://gitee.com/api/v5/gists", "POST", jo.ToJson()); hwr.ContentType = "application/json"; var rt = HttpTo.Url(hwr); gsmo.GsGiteeId = rt.ToJObject()["id"].ToString(); gsmo.GsGiteeTime = gist.GistUpdateTime; } _ = db.GistSync.Add(gsmo); _ = db.SaveChanges(); listLog.Add("新增一条成功"); listLog.Add(gsmo); } break; case "update": { if (gs.GistFilename != gist.GistFilename) { jo["files"][gs.GistFilename] = null; gs.GistFilename = gist.GistFilename; } //GitHub { var hwr = HttpTo.HWRequest("https://api.github.com/gists/" + gs.GsGitHubId, "PATCH", jo.ToJson()); hwr.Headers.Add(HttpRequestHeader.Authorization, "token " + token_gh); hwr.ContentType = "application/json"; hwr.UserAgent = GlobalTo.GetValue("UserAgent"); _ = HttpTo.Url(hwr); gs.GsGitHubTime = gist.GistUpdateTime; } //Gitee { var hwr = HttpTo.HWRequest("https://gitee.com/api/v5/gists/" + gs.GsGiteeId, "PATCH", jo.ToJson()); hwr.ContentType = "application/json"; _ = HttpTo.Url(hwr); gs.GsGiteeTime = gist.GistUpdateTime; } _ = db.GistSync.Update(gs); _ = db.SaveChanges(); listLog.Add("更新一条成功"); listLog.Add(gs); } break; } Thread.Sleep(1000 * 2); } } listLog.Add("同步删除:" + delCode.Count + " 条"); listLog.Add(delCode); //同步删除 if (delCode.Count > 0) { foreach (var code in delCode) { var gs = listGs.FirstOrDefault(x => x.GistCode == code); var dc = "00".ToCharArray(); #region GitHub var hwr_gh = HttpTo.HWRequest("https://api.github.com/gists/" + gs.GsGitHubId, "DELETE"); hwr_gh.Headers.Add(HttpRequestHeader.Authorization, "token " + token_gh); hwr_gh.UserAgent = GlobalTo.GetValue("UserAgent"); var resp_gh = (HttpWebResponse)hwr_gh.GetResponse(); if (resp_gh.StatusCode == HttpStatusCode.NoContent) { dc[0] = '1'; } #endregion #region Gitee var hwr_ge = HttpTo.HWRequest("https://gitee.com/api/v5/gists/" + gs.GsGiteeId + "?access_token=" + token_ge, "DELETE"); var resp_ge = (HttpWebResponse)hwr_ge.GetResponse(); if (resp_ge.StatusCode == HttpStatusCode.NoContent) { dc[1] = '1'; } #endregion if (string.Join("", dc) == "11") { _ = db.GistSync.Remove(gs); _ = db.SaveChanges(); listLog.Add("删除一条成功"); listLog.Add(gs); } else { listLog.Add("删除一条异常"); listLog.Add(dc); } Thread.Sleep(1000 * 2); } } listLog.Add("完成同步"); vm.Set(ARTag.success); vm.data = listLog; } catch (Exception ex) { vm.Set(ex); Console.WriteLine(ex); if (ex.InnerException != null) { Console.WriteLine(ex.InnerException.Message); } ConsoleTo.Log(ex, true); } return(vm); }
public ActionResultVM WriteSave(UserWriting mo, string TagIds) { var vm = new ActionResultVM(); var uinfo = new Func.UserAuthAid(HttpContext).Get(); using (var db = new ContextBase()) { //已验证邮箱 uinfo = db.UserInfo.Find(uinfo.UserId); if (uinfo.UserId != 1 && uinfo.UserMailValid != 1) { vm.Set(ARTag.unauthorized); vm.msg = "请验证邮箱后再操作"; return(vm); } var lisTagId = new List <int>(); TagIds.Split(',').ToList().ForEach(x => lisTagId.Add(Convert.ToInt32(x))); var lisTagName = Func.Common.TagsQuery().Where(x => lisTagId.Contains(x.TagId)).ToList(); mo.Uid = uinfo.UserId; mo.UwCreateTime = DateTime.Now; mo.UwUpdateTime = mo.UwCreateTime; mo.UwLastUid = mo.Uid; mo.UwLastDate = mo.UwCreateTime; mo.UwReplyNum = 0; mo.UwReadNum = 0; mo.UwOpen = 1; mo.UwLaud = 0; mo.UwMark = 0; mo.UwStatus = 1; db.UserWriting.Add(mo); db.SaveChanges(); var listwt = new List <UserWritingTags>(); foreach (var tag in lisTagId) { var wtmo = new UserWritingTags { UwId = mo.UwId, TagId = tag, TagName = lisTagName.Where(x => x.TagId == tag).FirstOrDefault().TagName }; listwt.Add(wtmo); } db.UserWritingTags.AddRange(listwt); //标签热点+1 var listTagId = listwt.Select(x => x.TagId.Value); var listTags = db.Tags.Where(x => listTagId.Contains(x.TagId)).ToList(); listTags.ForEach(x => x.TagHot += 1); db.Tags.UpdateRange(listTags); int num = db.SaveChanges(); vm.Set(num > 0); } return(vm); }
public ContatoRepository(ContextBase context) : base(context) { }
private NPath ResolveBeeProjectRoot(ContextBase context) => Path.GetFullPath(Application.dataPath + $"/../Library/IncPipeline/{context.BuildConfigurationName}");
public IActionResult Index() { string id = RouteData.Values["id"]?.ToString(); if (string.IsNullOrWhiteSpace(id)) { return(Redirect("/gist")); } //write js bool isjs = id.ToLower().Contains(".js"); if (isjs) { id = id.Replace(".js", ""); } //cmd && Auth string cmd = RouteData.Values["sid"]?.ToString().ToLower(); if (User.Identity.IsAuthenticated) { var uinfo = new Func.UserAuthAid(HttpContext).Get(); using (var db = new ContextBase()) { switch (cmd) { case "edit": { var mo = db.Gist.Where(x => x.GistCode == id).FirstOrDefault(); //有记录且为当前用户 if (mo != null && mo.Uid == uinfo.UserId) { return(View("_PartialMonacoEditor", mo)); } } break; case "delete": { var mo = db.Gist.Where(x => x.GistCode == id && x.Uid == uinfo.UserId).FirstOrDefault(); db.Gist.Remove(mo); int num = db.SaveChanges(); if (num > 0) { return(Redirect("/gist/user/" + uinfo.UserId)); } else { return(Content("Deletion failed or could not be accessed")); } } } } } using (var db = new ContextBase()) { var query = from a in db.Gist join b in db.GistSync on a.GistCode equals b.GistCode into bg from b in bg.DefaultIfEmpty() where a.GistCode == id && a.GistStatus == 1 && a.GistOpen == 1 select new Domain.Gist { GistId = a.GistId, Uid = a.Uid, GistCode = a.GistCode, GistContent = a.GistContent, GistCreateTime = a.GistCreateTime, GistUpdateTime = a.GistUpdateTime, GistFilename = a.GistFilename, GistLanguage = a.GistLanguage, GistOpen = a.GistOpen, GistRemark = a.GistRemark, GistRow = a.GistRow, GistStatus = a.GistStatus, GistTags = a.GistTags, GistTheme = a.GistTheme, Spare1 = b.GsGitHubId, Spare2 = b.GsGiteeId }; var mo = query.FirstOrDefault(); if (isjs) { return(Content(mo.GistContent)); } else { return(View(mo)); } } }
public ToolController(ContextBase cb) { db = cb; }
protected void BtnValidate_Click(object sender, EventArgs e) { tableNamePrefix = Convert.ToString(Session["Exp"]); // create instance of compile class Compile mCompile = new Compile(); int i; string strType = rblFormulaType.SelectedItem.Text; int selType = Convert.ToInt32(rblFormulaType.SelectedValue); // now try formula try { DateTime Period = new DateTime(DateTime.Now.Date.AddMonths(-1).Year, DateTime.Now.Date.AddMonths(-1).Month, 1); DataTable dtData = mCompile.CalcCost(strType, txtFormula.Text.Trim(), "", 0, Period, 0, 0, Compile.AggType.None, true, tableNamePrefix); if (dtData.Rows.Count > 0) { // add calcCost as a array element to facilitate display IList <string> temp; temp = mCompile.aryVars[selType].ToList(); temp.Add("CalcCost"); mCompile.aryVars[selType] = temp.ToArray(); temp = mCompile.aryVarFormats[selType].ToList(); temp.Add("{0:$#,##0.00}"); mCompile.aryVarFormats[selType] = temp.ToArray(); BoundColumn bc; for (i = 0; i < mCompile.aryVars[selType].Length; i++) { bc = new BoundColumn { DataField = mCompile.aryVars[selType][i] }; bc.ItemStyle.HorizontalAlign = HorizontalAlign.Right; bc.HeaderText = mCompile.aryVars[selType][i]; bc.HeaderStyle.Font.Bold = true; bc.HeaderStyle.HorizontalAlign = HorizontalAlign.Right; if (mCompile.aryVarFormats[selType][i].Length > 0) { bc.DataFormatString = mCompile.aryVarFormats[selType][i]; } dgSample.Columns.Add(bc); } dgSample.DataSource = dtData; dgSample.DataBind(); } } catch (Exception ex) { lblError.Text = ex.Message; lblError.Visible = true; return; } // if no errors, store new formula. // if a new formula has been stored, over-write it DataRow[] fdr = dsFormula.Tables["Formula"].Select(string.Format("FormulaType = '{0}'", rblFormulaType.SelectedItem.Text), "EffDate ASC"); if (fdr.Length > 1) { dsFormula.Tables["Formula"].Rows.Remove(fdr[1]); } DataRow ndr = dsFormula.Tables["Formula"].NewRow(); ndr["FormulaType"] = rblFormulaType.SelectedItem.Text; ndr["Formula"] = txtFormula.Text; ndr["EffDate"] = DateTime.Now; dsFormula.Tables["Formula"].Rows.Add(ndr); ContextBase.SetCacheData(dsFormula); btnRevert.Enabled = true; }
public virtual void RefreshData(ContextBase context) { }
public RepositoryBase(ContextBase contextBase) { _contextBase = contextBase; _entity = contextBase.Set <TEntity>(); }
Result IMeta.Result (Category category, ResultCache left, ContextBase contextBase, Value right) { NotImplementedMethod(contextBase, left, category, right); return null; }
public FutureRepository() { context = (ContextBase)ServicesProvider.ServiceProvider.GetService(typeof(ContextBase)); }
protected abstract Result Result (ContextBase context, Category category, TerminalSyntax token);
public ActionResultVM LsitReplySave(UserReply mo, UserMessage um) { var vm = new ActionResultVM(); var now = DateTime.Now; if (HttpContext.User.Identity.IsAuthenticated) { mo.Uid = new Func.UserAuthAid(HttpContext).Get().UserId; } else { mo.Uid = 0; } //回复消息 um.UmId = Core.UniqueTo.LongId().ToString(); um.UmTriggerUid = mo.Uid; um.UmType = Func.EnumAid.MessageType.UserWriting.ToString(); um.UmTargetId = mo.UrTargetId; um.UmAction = 2; um.UmStatus = 1; um.UmContent = mo.UrContent; um.UmCreateTime = now; using (var db = new ContextBase()) { //回复内容 mo.UrCreateTime = now; mo.UrStatus = 1; mo.UrTargetPid = 0; mo.UrTargetType = Func.EnumAid.ReplyType.UserWriting.ToString(); db.UserReply.Add(mo); //回填文章最新回复记录 var mow = db.UserWriting.FirstOrDefault(x => x.UwId.ToString() == mo.UrTargetId); if (mow != null) { mow.UwReplyNum += 1; mow.UwLastUid = mo.Uid; mow.UwLastDate = now; um.UmTargetIndex = mow.UwReplyNum; db.UserWriting.Update(mow); } if (um.Uid != um.UmTriggerUid) { db.UserMessage.Add(um); } int num = db.SaveChanges(); vm.Set(num > 0); } return(vm); }
protected abstract Result Result (ContextBase context, Category category, Value right);
public RepositoryGenerics(ContextBase context) { _contexto = context; DbSet = _contexto.Set <T>(); }
protected abstract Result Result (ContextBase context, Category category);
public AvaliacaoRepository(ContextBase contextBase) : base(contextBase) { }
protected abstract Result Result (ContextBase callContext, Category category, Value right, Syntax token);
public int Create(List <int> inseretedCompanyViewElement, List <int> deletedCompanyViewElement, int CompanyId, bool allowSaveChange = true) { var addedViewElemetId = new List <int>(); var allViewElements = new List <ViewElement>(); var allParentViewElements = new List <ViewElement>(); var foundedCompany = ContextBase.Set <Company>().Find(CompanyId); var existedVElement = foundedCompany.CompanyViewElements.Select(a => a.ViewElement.Id).ToList(); //در دیتابیس هستند در لیست حذف شده هم هست var deleteElement = from x in existedVElement where deletedCompanyViewElement.Contains(x) select x; //لیست آیتم هایی که در دیتابیس هست و قرار نیست حذف شود var neverDeleteItem = foundedCompany.CompanyViewElements.Where(a => a.ViewElement.IsHidden != true) .Select(a => a.ViewElement.Id) .ToList(); var existedItemForAdd = neverDeleteItem.Where(item => !deleteElement.Contains(item)).ToList(); foreach (int item in existedItemForAdd) { if (!inseretedCompanyViewElement.Contains(item)) { inseretedCompanyViewElement.Add(item); } } foreach (var vId in existedVElement) { var foundedViewElement = ContextBase.Set <CompanyViewElement>().Find(vId, CompanyId); ContextBase.Set <CompanyViewElement>().Remove(foundedViewElement); } foreach (var velementId in inseretedCompanyViewElement) { var foundVelement = ContextBase.Set <ViewElement>().Find(velementId); foreach (var childElement in foundVelement.ChildrenViewElement) { var parentElement = ContextBase.Set <ViewElement>().Find(childElement.ParentId); List <ViewElement> resultElements; resultElements = GetHiddenEelements(parentElement); if (resultElements != null) { foreach (var resultElement in resultElements) { var hElement = ContextBase.Set <ViewElement>().Find(resultElement.Id); if (!addedViewElemetId.Any(a => a.Equals(hElement.Id))) { Create(new CompanyViewElement() { CompanyId = CompanyId, ViewElementId = hElement.Id }, false); } //... addedViewElemetId.Add(hElement.Id); allViewElements.Add(foundVelement); } } } if (!addedViewElemetId.Any(a => a.Equals(foundVelement.Id))) { Create(new CompanyViewElement() { CompanyId = CompanyId, ViewElementId = foundVelement.Id }, false); } //... addedViewElemetId.Add(foundVelement.Id); allViewElements.Add(foundVelement); } //... foreach (var item in allViewElements) { if (!allViewElements.Any(r => r.Id == item.ParentId)) { var foundParent = ContextBase.Set <ViewElement>().Find(item.ParentId); //Find(item.ParentId); if (foundParent != null) { if (!allParentViewElements.Any(a => a.Id == foundParent.Id)) { allParentViewElements.Add(foundParent); } } } } foreach (var parent in allParentViewElements) { if (parent.ChildrenViewElement != null) { var hiddenElements = parent.ChildrenViewElement.Where(a => a.IsHidden).ToList(); foreach (var hItem in hiddenElements) { if (!addedViewElemetId.Any(a => a.Equals(hItem.Id))) { Create(new CompanyViewElement() { CompanyId = CompanyId, ViewElementId = hItem.Id }, false); } addedViewElemetId.Add(hItem.Id); allViewElements.Add(hItem); } } } ContextBase.Set <Company>().Attach(foundedCompany); if (allowSaveChange) { return(SaveChanges()); } return(0); }
protected override Result Result (ContextBase context, Category category, Value right, Syntax token) { NotImplementedMethod(context, category, token, right); return null; }
public NewsCollectionService(ILogger <NewsCollectionService> logger, ContextBase context) { _logger = logger; _context = context; }
protected override Result Result (ContextBase context, Category category, Value right, Syntax token) => context.FunctionalArgResult(category, right, token);
public override void OnActionExecuted(ActionExecutedContext filterContext) { var hc = filterContext.HttpContext; //是Ajax请求 if (hc.Request.IsAjaxRequest()) { string controller = filterContext.RouteData.Values["controller"].ToString().ToLower(); string action = filterContext.RouteData.Values["action"].ToString().ToLower(); string url = hc.Request.Path.ToString() + hc.Request.QueryString.ToString(); try { //客户端信息 var ct = new Core.ClientTo(); //用户信息 var userinfo = Func.Common.GetLoginUserInfo(); //日志保存 var mo = new Domain.SysLog() { LogId = Guid.NewGuid().ToString(), SuName = userinfo.UserName, LogAction = controller + "/" + action, LogUrl = url, LogIp = ct.IPv4, LogCreateTime = DateTime.Now, LogBrowserName = ct.BrowserName, LogSystemName = ct.SystemName, LogGroup = 1 }; mo.LogContent = DicDescription[mo.LogAction.ToLower()]; #region 分批写入日志 //分批写入满足的条件:缓存的日志数量 int cacheLogCount = 2000; //分批写入满足的条件:缓存的时长,单位秒 int cacheLogTime = 60; //日志记录 var cacheLogsKey = "Global_Logs"; //上次写入的时间 var cacheLogWriteKey = "Global_Logs_Write"; if (!(Core.CacheTo.Get(cacheLogsKey) is List <Domain.SysLog> cacheLogs)) { cacheLogs = new List <Domain.SysLog>(); } cacheLogs.Add(mo); var cacheLogWrite = Core.CacheTo.Get(cacheLogWriteKey) as DateTime?; if (!cacheLogWrite.HasValue) { cacheLogWrite = DateTime.Now; } if (cacheLogs?.Count > cacheLogCount || DateTime.Now.ToTimestamp() - cacheLogWrite.Value.ToTimestamp() > cacheLogTime) { using (var db = new ContextBase()) { db.SysLog.AddRange(cacheLogs); db.SaveChanges(); } cacheLogs = null; cacheLogWrite = DateTime.Now; } Core.CacheTo.Set(cacheLogsKey, cacheLogs, 3600 * 24 * 30); Core.CacheTo.Set(cacheLogWriteKey, cacheLogWrite, 3600 * 24 * 30); #endregion } catch (Exception) { //throw new System.Exception("写入操作日志失败"); } } base.OnActionExecuted(filterContext); }
protected override Result Result (ContextBase context, Category category, TerminalSyntax token) => context .FindRecentCompoundView .ContextOperatorResult(category);
/// <summary> /// 查询拼接 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="query"></param> /// <param name="param"></param> /// <param name="ru"></param> /// <param name="or"></param> public static void QueryJoin <T>(IQueryable <T> query, QueryDataVM.GetParams param, ContextBase db, ref QueryDataVM.OutputResult or) { //条件 query = QueryWhere(query, param); //总条数 or.total = query.Count(); //排序 if (!string.IsNullOrWhiteSpace(param.sort)) { query = Fast.QueryableTo.OrderBy(query, param.sort, param.order); } //分页 if (param.pagination == 1) { query = query.Skip((param.page - 1) * param.rows).Take(param.rows); } //数据 or.data = query.ToList(); //列 if (param.columnsExists != 1) { or.columns = db.SysTableConfig.Where(x => x.TableName == param.tableName).OrderBy(x => x.ColOrder).ToList(); } }
public Repository(ContextBase dbContext) { _dbContext = dbContext; }
public void Export(QueryDataVM.GetParams param) { if (!string.IsNullOrWhiteSpace(param.tableName)) { //导出文件名 string filename = "导出表格"; //生成excel的临时文件目录 string path = GlobalVar.WebRootPath + "/temp/"; //存放导出的数据 var dt = new DataTable(); //查询导出的数据 string sql = ExportSql(param.tableName.ToLower()); #region 表配置处理(列排序、列改名、剔除不要的列) using (var db = new ContextBase()) { using (var conn = db.Database.GetDbConnection()) { conn.Open(); var cmd = conn.CreateCommand(); cmd.CommandText = sql; dt.Load(cmd.ExecuteReader()); } var configquery = from a in db.SysTableConfig where a.TableName == param.tableName && a.ColHide == 0 && a.ColExport == 1 orderby(a.ColFrozen == null ? 0 : a.ColFrozen) descending, a.ColOrder ascending select new { a.ColField, a.ColTitle }; //配置信息 var configlist = configquery.ToList(); var listcol = configlist.Select(x => x.ColField.ToLower()).ToList(); //需要删除的列 var listcolRemove = new List <string>(); foreach (DataColumn dc in dt.Columns) { if (!listcol.Contains(dc.ColumnName.ToLower())) { listcolRemove.Add(dc.ColumnName); } } //删除列 foreach (var item in listcolRemove) { dt.Columns.Remove(item); } //列排序、重命名 for (int i = 0; i < configlist.Count; i++) { var item = configlist[i]; if (dt.Columns.Contains(item.ColField)) { var dc = dt.Columns[item.ColField]; //列排序 dc.SetOrdinal(i); //重命名列 int index = 1; string newcol = item.ColTitle; while (dt.Columns.Contains(newcol)) { newcol = item.ColTitle + index.ToString(); index++; } dc.ColumnName = newcol; } } } #endregion #region 生成Excel并输出流 if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } filename += DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; if (Core.NPOITo.DataTableToExcel(dt, path + filename)) { new Core.DownTo(Response).Stream(path, filename); } #endregion } }