public void Declare(Accessibility accessibility, String name, Exp value = null) { if (dict.ContainsKey(name)) validations.GenericWarning("variable '" + name + "' is already declared", Void.Instance); dict.Add(name, new EnvItem(accessibility, value)); }
public ExceptHandler(Exp type, Identifier name, SuiteStatement body, string filename, int start, int end) : base(filename, start, end) { this.type = type; this.name = name; this.body = body; }
static Void printEnvText(Exp asi) { var he = asi as IHasEnv; if (he != null) Env.PrintEnv(he.Env); return new Void(); }
private void InitThread(Time time, Exp action) { while (true) { Thread.Sleep(GetTimeUntilSleep(time)); action.Invoke(); } }
public SwitchStmt(Exp exp, Exp opCase1, IStmt case1, Exp opCase2, IStmt case2, IStmt defaultCase) { this.exp = exp; this.expCase1 = opCase1; this.case1 = case1; this.case2 = case2; this.expCase2 = opCase2; this.defaultCase = defaultCase; }
public void Schedule(Exp exp, Time time) { actions.Add(exp); Thread t = new Thread(new ThreadStart(() => { InitThread(time, exp); })); workers.Add(t); t.Start(); }
public object Replace(string name, Exp<object> exp) { if (this.Name == name) { return exp.Copy(); } else { return Copy(); } }
public void TakeDamage(float amount, Exp exp = null) { /* Returns true if the monster was killed with this attack */ if (isDead) return; damaged = true; curHealth -= amount; Debug.Log("Enemy Takes Damage"); Debug.Log(curHealth); if(curHealth <= 0) { Debug.Log("Enemy Destroyed!!!"); Death(); if(exp != null) exp += expVal; } }
public void ViewKuniInfo(){ string kuniPath = "Prefabs/Map/KuniInfo"; GameObject kuni = Instantiate (Resources.Load (kuniPath)) as GameObject; kuni.transform.SetParent(GameObject.Find ("Kakejiku").transform); kuni.transform.localScale = new Vector2 (1, 1); kuni.name = "kuniInfo"; //Current Kokuryoku int kuniExp = PlayerPrefs.GetInt ("kuniExp"); kuni.transform.FindChild ("KuniLvValue").GetComponent<Text> ().text = kuniExp.ToString (); //Exp for Next Lv int nowLv = PlayerPrefs.GetInt ("kuniLv"); Exp exp = new Exp (); int totalExp = exp.getKuniExpforNextLv (nowLv); int diff = totalExp - kuniExp; kuni.transform.FindChild ("KuniNextLvValue").GetComponent<Text> ().text = diff.ToString (); //Now Kuni Qty string clearedKuni = PlayerPrefs.GetString ("clearedKuni"); if (clearedKuni != null && clearedKuni != "") { if (clearedKuni.Contains (",")) { char[] delimiterChars = {','}; string[] clearedKuniList = clearedKuni.Split (delimiterChars); kuni.transform.FindChild ("ShiroQtyValue").GetComponent<Text> ().text = clearedKuniList.Length.ToString (); } else { kuni.transform.FindChild ("ShiroQtyValue").GetComponent<Text> ().text = "1"; } } else { kuni.transform.FindChild ("ShiroQtyValue").GetComponent<Text> ().text = "0"; } //Syutujin Limit int jinkeiLimit = PlayerPrefs.GetInt ("jinkeiLimit"); kuni.transform.FindChild ("SyutsujinQtyValue").GetComponent<Text> ().text = jinkeiLimit.ToString (); //Stock Limit int stockLimit = PlayerPrefs.GetInt ("stockLimit"); int myBusyoQty = PlayerPrefs.GetInt ("myBusyoQty"); string value = myBusyoQty.ToString () + "/" + stockLimit.ToString (); kuni.transform.FindChild ("TouyouQtyValue").GetComponent<Text> ().text = value; }
void CheckInt(Exp e) { if(e.ExpType != typeof(int)){ if (e is VarExp && e.ExpType == typeof(void)){ //Param Variable. Type unknown. Assume first occurence e.ExpType = typeof(int); CurrentFuncDef.Add(((VarExp)e).Name, typeof(int)); } else if (e is DoVarExp && e.ExpType == typeof(void)){ //Do Variable. Type unknown. Assume first occurence e.ExpType = typeof(int); DoVars.Add(((DoVarExp)e).Pos, typeof(int)); } else if (e is CallExp && e.ExpType == typeof(void)){ //Recursive function call. Assume first occurence e.ExpType = typeof(int); } else if (!(e is CarExp)){ //CarExp will be coerceto int Console.WriteLine("Int expected"); success = false; } } }
bool IsSelfEvaluating(Exp exp) { return(exp is Number || exp is UString || exp is Boolean || exp is Vector || exp is Character || IsPurePair(exp) || exp is ByteVector || exp is Procedure); }
public IEnumerable <Tag> GetNewTags(Guid subject, Folder parentFolder, bool deepSearch) { using (var DbManager = GetDb()) { if (parentFolder == null || parentFolder.ID == null) { throw new ArgumentException("folderId"); } var result = new List <Tag>(); var monitorFolderIds = new[] { parentFolder.ID }.AsEnumerable(); var getBaseSqlQuery = new Func <SqlQuery>(() => { var fnResult = Query("files_tag ft") .Select("ft.name", "ft.flag", "ft.owner", "ftl.entry_id", "ftl.entry_type", "ftl.tag_count", "ft.id") .Distinct() .InnerJoin("files_tag_link ftl", Exp.EqColumns("ft.tenant_id", "ftl.tenant_id") & Exp.EqColumns("ft.id", "ftl.tag_id")) .Where(Exp.Eq("ft.flag", (int)TagType.New)); if (subject != Guid.Empty) { fnResult.Where(Exp.Eq("ft.owner", subject)); } return(fnResult); }); var tempTags = Enumerable.Empty <Tag>(); if (parentFolder.FolderType == FolderType.SHARE) { var shareQuery = new Func <SqlQuery>(() => getBaseSqlQuery().Where(Exp.Exists( new SqlQuery("files_security fs") .Select("fs.entry_id") .Where( Exp.EqColumns("fs.tenant_id", "ftl.tenant_id") & Exp.EqColumns("fs.entry_id", "ftl.entry_id") & Exp.EqColumns("fs.entry_type", "ftl.entry_type"))))); var tmpShareFileTags = DbManager.ExecuteList( shareQuery().InnerJoin("files_file f", Exp.EqColumns("f.tenant_id", "ftl.tenant_id") & !Exp.Eq("f.create_by", subject) & Exp.EqColumns("f.id", "ftl.entry_id") & Exp.Eq("ftl.entry_type", (int)FileEntryType.File)) .Select(GetRootFolderType("folder_id"))) .Where(r => ParseRootFolderType(r[7]) == FolderType.USER).ToList() .ConvertAll(ToTag); tempTags = tempTags.Concat(tmpShareFileTags); var tmpShareFolderTags = DbManager.ExecuteList( shareQuery().InnerJoin("files_folder f", Exp.EqColumns("f.tenant_id", "ftl.tenant_id") & !Exp.Eq("f.create_by", subject) & Exp.EqColumns("f.id", "ftl.entry_id") & Exp.Eq("ftl.entry_type", (int)FileEntryType.Folder)) .Select(GetRootFolderType("parent_id"))) .Where(r => ParseRootFolderType(r[7]) == FolderType.USER).ToList() .ConvertAll(ToTag); tempTags = tempTags.Concat(tmpShareFolderTags); var tmpShareSboxTags = DbManager.ExecuteList( shareQuery() .InnerJoin("files_thirdparty_id_mapping m", Exp.EqColumns("m.tenant_id", "ftl.tenant_id") & Exp.EqColumns("m.hash_id", "ftl.entry_id")) .InnerJoin("files_thirdparty_account ac", Exp.EqColumns("ac.tenant_id", "m.tenant_id") & Exp.Sql("m.id Like concat('sbox-', ac.id, '%') or m.id Like concat('box-', ac.id, '%') or m.id Like concat('dropbox-', ac.id, '%') or m.id Like concat('spoint-', ac.id, '%') or m.id Like concat('drive-', ac.id, '%') or m.id Like concat('onedrive-', ac.id, '%')") & !Exp.Eq("ac.user_id", subject) & Exp.Eq("ac.folder_type", FolderType.USER) ) ).ConvertAll(ToTag); tempTags = tempTags.Concat(tmpShareSboxTags); } else if (parentFolder.FolderType == FolderType.Projects) { tempTags = tempTags.Concat( DbManager.ExecuteList(getBaseSqlQuery() .InnerJoin("files_bunch_objects fbo", Exp.EqColumns("fbo.tenant_id", "ftl.tenant_id") & Exp.EqColumns("fbo.left_node", "ftl.entry_id") & Exp.Eq("ftl.entry_type", (int)FileEntryType.Folder)) .Where(Exp.Eq("fbo.tenant_id", TenantID) & Exp.Like("fbo.right_node", "projects/project/", SqlLike.StartWith))) .ConvertAll(ToTag)); } if (tempTags.Any()) { if (!deepSearch) { return(tempTags); } monitorFolderIds = monitorFolderIds.Concat(tempTags.Where(x => x.EntryType == FileEntryType.Folder).Select(x => x.EntryId)); result.AddRange(tempTags); } var subFoldersSqlQuery = new SqlQuery("files_folder_tree") .Select("folder_id") .Where(Exp.In("parent_id", monitorFolderIds.ToArray())); if (!deepSearch) { subFoldersSqlQuery.Where(Exp.Eq("level", 1)); } monitorFolderIds = monitorFolderIds.Concat(DbManager.ExecuteList(subFoldersSqlQuery).ConvertAll(x => x[0])); var newTagsForFolders = DbManager.ExecuteList(getBaseSqlQuery() .Where(Exp.In("ftl.entry_id", monitorFolderIds.ToArray()) & Exp.Eq("ftl.entry_type", (int)FileEntryType.Folder))) .ConvertAll(ToTag); result.AddRange(newTagsForFolders); var newTagsForFiles = DbManager.ExecuteList(getBaseSqlQuery() .InnerJoin("files_file ff", Exp.EqColumns("ftl.tenant_id", "ff.tenant_id") & Exp.EqColumns("ftl.entry_id", "ff.id")) .Where(Exp.In("ff.folder_id", (deepSearch ? monitorFolderIds.ToArray() : new[] { parentFolder.ID })) & Exp.Eq("ftl.entry_type", (int)FileEntryType.File))) .ConvertAll(ToTag); result.AddRange(newTagsForFiles); if (parentFolder.FolderType == FolderType.USER || parentFolder.FolderType == FolderType.COMMON) { var folderType = parentFolder.FolderType; var querySelect = new SqlQuery("files_thirdparty_account") .Select("id") .Where("tenant_id", TenantID) .Where("folder_type", (int)folderType); if (folderType == FolderType.USER) { querySelect = querySelect.Where(Exp.Eq("user_id", subject.ToString())); } var folderIds = DbManager.ExecuteList(querySelect); var thirdpartyFolderIds = folderIds.ConvertAll(r => "sbox-" + r[0]) .Concat(folderIds.ConvertAll(r => "box-" + r[0])) .Concat(folderIds.ConvertAll(r => "dropbox-" + r[0])) .Concat(folderIds.ConvertAll(r => "spoint-" + r[0])) .Concat(folderIds.ConvertAll(r => "drive-" + r[0])) .Concat(folderIds.ConvertAll(r => "onedrive-" + r[0])); var newTagsForSBox = DbManager.ExecuteList(getBaseSqlQuery() .InnerJoin("files_thirdparty_id_mapping mp", Exp.EqColumns("mp.tenant_id", "ftl.tenant_id") & Exp.EqColumns("ftl.entry_id", "mp.hash_id")) .Where(Exp.In("mp.id", thirdpartyFolderIds.ToList()) & Exp.Eq("ft.owner", subject) & Exp.Eq("ftl.entry_type", (int)FileEntryType.Folder))) .ConvertAll(ToTag); result.AddRange(newTagsForSBox); } return(result); } }
public static void GetResWordByKey(ResWord word, string to) { using (var dbManager = new DbManager("tmresource")) { var sql = new SqlQuery("res_data") .Select("textvalue", "description", "link") .Where("fileID", word.ResFile.FileID) .Where("cultureTitle", "Neutral") .Where("title", word.Title); dbManager.ExecuteList(sql).ForEach(r => GetValue(word, to, r)); GetValueByKey(word, to); sql = new SqlQuery("res_data as res1").Select("res1.textvalue").Distinct() .InnerJoin("res_data as res2", Exp.EqColumns("res1.title", "res2.title") & Exp.EqColumns("res1.fileid", "res2.fileid")) .Where("res1.cultureTitle", to) .Where("res2.cultureTitle", "Neutral") .Where("res2.textvalue", word.ValueFrom); word.Alternative = new List <string>(); dbManager.ExecuteList(sql).ForEach(r => word.Alternative.Add((string)r[0])); word.Alternative.Remove(word.ValueTo); sql = new SqlQuery("res_files") .Select("resname") .Where("id", word.ResFile.FileID); word.ResFile.FileName = (string)dbManager.ExecuteScalar(sql); return; } }
public static List <StatisticUser> GetUserStatisticForModules(string login, DateTime from, DateTime till) { using (var dbManager = new DbManager("tmresource")) { var sql = new SqlQuery("res_data as r1"); sql.SelectCount().Select(new[] { "concat_ws(':', res_files.projectName,res_files.moduleName)", "r1.authorLogin", "sum(length(r2.textvalue))" }) .InnerJoin("res_data as r2", Exp.And(Exp.EqColumns("r1.fileID", "r2.fileID"), Exp.EqColumns("r1.title", "r2.title"))) .InnerJoin("res_files", Exp.EqColumns("r1.fileid", "res_files.id")) .Where(!Exp.Eq("r1.flag", 4)) .Where(!Exp.Eq("r1.flag", 3)) .Where(!Exp.Eq("r1.authorLogin", "Console")) .Where(!Exp.Eq("r1.cultureTitle", "Neutral")) .Where(Exp.Ge("r1.timeChanges", from)) .Where(Exp.Le("r1.timeChanges", till)) .Where("r2.cultureTitle", "Neutral") .Where(Exp.Eq("r1.authorLogin", login)) .GroupBy(new[] { "r1.fileid", "r1.authorLogin" }) .OrderBy("r1.fileid", true) .OrderBy("r1.authorLogin", true); return(dbManager.ExecuteList(sql).Select(r => new StatisticUser { WordsCount = Convert.ToInt32(r[0]), Module = (string)r[1], Login = (string)r[2], SignCount = Convert.ToInt32(r[3]) }).ToList()); } }
public IEnumerable <Tag> GetNewTags(Guid subject, params FileEntry[] fileEntries) { using (var DbManager = GetDb()) { var result = new List <Tag>(); if (fileEntries == null || !fileEntries.Any()) { return(result); } using (var tx = DbManager.BeginTransaction()) { var sqlQuery = Query("files_tag ft") .Select("ft.name", "ft.flag", "ft.owner", "ftl.entry_id", "ftl.entry_type", "ftl.tag_count", "ft.id") .Distinct() .InnerJoin("files_tag_link ftl", Exp.EqColumns("ft.tenant_id", "ftl.tenant_id") & Exp.EqColumns("ft.id", "ftl.tag_id")) .Where(Exp.Eq("ft.flag", (int)TagType.New)); if (subject != Guid.Empty) { sqlQuery.Where(Exp.Eq("ft.owner", subject)); } const string sqlQueryStr = @" CREATE TEMPORARY TABLE IF NOT EXISTS `files_tag_temporary` ( `tenant_id` INT(10) NOT NULL, `entry_id` VARCHAR(255) NOT NULL, `entry_type` INT(10) NOT NULL, PRIMARY KEY (`tenant_id`, `entry_id`, `entry_type`) );"; DbManager.ExecuteNonQuery(sqlQueryStr); while (fileEntries.Any()) { var insertQuery = new SqlInsert("files_tag_temporary", true) .InColumns(new[] { GetTenantColumnName("files_tag_temporary"), "entry_id", "entry_type" }); foreach (var fileEntrie in fileEntries.Take(100)) { if (fileEntrie != null) { insertQuery.Values(new[] { TenantID, MappingID(fileEntrie.ID), (fileEntrie is File) ? (int)FileEntryType.File : (int)FileEntryType.Folder }); } } DbManager.ExecuteNonQuery(insertQuery); fileEntries = fileEntries.Skip(100).ToArray(); } var resultSql = sqlQuery .InnerJoin("files_tag_temporary ftt", Exp.EqColumns("ftl.tenant_id", "ftt.tenant_id") & Exp.EqColumns("ftl.entry_id", "ftt.entry_id") & Exp.EqColumns("ftl.entry_type", "ftt.entry_type")); result = DbManager.ExecuteList(resultSql).ConvertAll(ToTag).Where(x => x.EntryId != null).ToList(); DbManager.ExecuteNonQuery(Delete("files_tag_temporary")); tx.Commit(); } return(result); } }
//trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME public Exp trailer(Exp core) { Token tok; switch (lexer.Peek().Type) { case TokenType.LPAREN: tok = lexer.Get(); var args = arglist(core, tok.Start); Expect(TokenType.RPAREN); return args; case TokenType.LBRACKET: lexer.Get(); var subs = subscriptlist(); tok = Expect(TokenType.RBRACKET); return new ArrayRef(core, subs, filename, core.Start, tok.End); case TokenType.DOT: lexer.Get(); tok = Expect(TokenType.ID); var id = new Identifier((string) tok.Value, filename, core.Start, tok.End); return new AttributeAccess(core, id, filename, core.Start, tok.End); default: throw new InvalidOperationException(); } }
public List <Project> GetByFilter(TaskFilter filter, bool isAdmin) { var query = new SqlQuery(ProjectsTable + " p") .Select(ProjectColumns.Select(c => "p." + c).ToArray()) .Select(new SqlQuery(MilestonesTable + " m").SelectCount().Where(Exp.EqColumns("m.tenant_id", "p.tenant_id") & Exp.EqColumns("m.project_id", "p.id")).Where(Exp.Eq("m.status", MilestoneStatus.Open))) .Select(new SqlQuery(TasksTable + " t").SelectCount().Where(Exp.EqColumns("t.tenant_id", "p.tenant_id") & Exp.EqColumns("t.project_id", "p.id")).Where(!Exp.Eq("t.status", TaskStatus.Closed))) .Select(new SqlQuery(ParticipantTable + " pp").SelectCount().Where(Exp.EqColumns("pp.tenant", "p.tenant_id") & Exp.EqColumns("pp.project_id", "p.id") & Exp.Eq("pp.removed", false))) .Select("p.private") .Where("p.tenant_id", Tenant); if (filter.Max > 0 && filter.Max < 150000) { query.SetFirstResult((int)filter.Offset); query.SetMaxResults((int)filter.Max * 2); } query.OrderBy("(case p.status when 2 then 1 when 1 then 2 else 0 end)", true); if (!string.IsNullOrEmpty(filter.SortBy)) { var sortColumns = filter.SortColumns["Project"]; sortColumns.Remove(filter.SortBy); query.OrderBy("p." + filter.SortBy, filter.SortOrder); foreach (var sort in sortColumns.Keys) { query.OrderBy("p." + sort, sortColumns[sort]); } } query = CreateQueryFilter(query, filter, isAdmin); using (var db = new DbManager(DatabaseId)) { return(db.ExecuteList(query).ConvertAll(ToProjectFull).ToList()); } }
public List <Project> GetByParticipiant(Guid participantId, ProjectStatus status) { var query = Query(ProjectsTable) .Select(ProjectColumns) .InnerJoin(ParticipantTable, Exp.EqColumns("id", "project_id") & Exp.Eq("removed", false) & Exp.EqColumns("tenant_id", "tenant")) .Where("status", status) .Where("participant_id", participantId.ToString()) .OrderBy("title", true); using (var db = new DbManager(DatabaseId)) { return(db.ExecuteList(query).ConvertAll(ToProject).ToList()); } }
public List <Project> GetOpenProjectsWithTasks(Guid participantId) { var query = new SqlQuery(ProjectsTable + " p") .Select(ProjectColumns.Select(c => "p." + c).ToArray()) .InnerJoin(TasksTable + " t", Exp.EqColumns("t.tenant_id", "p.tenant_id") & Exp.EqColumns("t.project_id", "p.id")) .Where("p.tenant_id", Tenant) .Where("p.status", ProjectStatus.Open) .OrderBy("p.title", true) .GroupBy("p.id"); if (!participantId.Equals(Guid.Empty)) { query.InnerJoin(ParticipantTable + " ppp", Exp.EqColumns("ppp.tenant", "p.tenant_id") & Exp.EqColumns("ppp.project_id", "p.id") & Exp.Eq("ppp.removed", false)) .Where("ppp.participant_id", participantId); } using (var db = new DbManager(DatabaseId)) { return(db.ExecuteList(query).ConvertAll(ToProject).ToList()); } }
public static void DeleteInvCheckOrder(ISession _session, string InvCheckNumber) { if (_session.CreateEntityQuery <INVCheckHead>().Where(Exp.Eq("OrderNumber", InvCheckNumber)).And(Exp.Eq("Status", 1)).List <INVCheckHead>().Count == 0) { throw new Exception("库存盘点单不存在或已经确认!"); } _session.CreateEntityQuery <INVCheckHead>().Where(Exp.Eq("OrderNumber", InvCheckNumber)).Delete(); _session.CreateEntityQuery <INVCheckLine>().Where(Exp.Eq("OrderNumber", InvCheckNumber)).Delete(); _session.CreateEntityQuery <INVCheckWh>().Where(Exp.Eq("OrderNumber", InvCheckNumber)).Delete(); }
void ReplaceCurrent(Exp exp, Env env = null) { current.ready = false; current.exp = exp.Clone(); current.env = env ?? current.env; }
bool IsValue(Exp exp) { return(exp is Identifier || !(exp is Cell) || !(exp as Cell).IsList); }
bool IsPurePair(Exp exp) { return(exp is Cell && !(exp as Cell).IsList); }
public KeywordArgument(Exp t, string filename, int start, int end) : base(t, filename, start, end) { }
private void GenerateAssert(Exp test) { gen.SideEffect( gen.Appl( new CodeMethodReferenceExpression( new CodeTypeReferenceExpression("Debug"), "Assert"), test.Accept(xlat))); gen.EnsureImport("System.Diagnostics"); }
private SqlQuery CreateQueryFilter(SqlQuery query, TaskFilter filter, bool isAdmin) { if (filter.TagId != 0) { query.InnerJoin(ProjectTagTable + " ptag", Exp.EqColumns("ptag.project_id", "p.id")); query.Where("ptag.tag_id", filter.TagId); } if (filter.HasUserId || (filter.ParticipantId.HasValue && filter.ParticipantId != Guid.Empty)) { var existParticipant = new SqlQuery(ParticipantTable + " ppp").Select("ppp.participant_id").Where(Exp.EqColumns("p.id", "ppp.project_id") & Exp.Eq("ppp.removed", false) & Exp.Eq("ppp.tenant", Tenant)); if (filter.DepartmentId != Guid.Empty) { existParticipant.InnerJoin("core_usergroup cug", Exp.Eq("cug.removed", false) & Exp.EqColumns("cug.userid", "ppp.participant_id") & Exp.EqColumns("cug.tenant", "ppp.tenant")); existParticipant.Where("cug.groupid", filter.DepartmentId); } if (filter.ParticipantId.HasValue && filter.ParticipantId != Guid.Empty) { existParticipant.Where(Exp.Eq("ppp.participant_id", filter.ParticipantId.ToString())); } query.Where(Exp.Exists(existParticipant)); } if (filter.UserId != Guid.Empty) { query.Where("responsible_id", filter.UserId); } if (filter.Follow) { query.InnerJoin(FollowingProjectTable + " pfpp", Exp.EqColumns("p.id", "pfpp.project_id")); query.Where(Exp.Eq("pfpp.participant_id", CurrentUserID)); } if (filter.ProjectStatuses.Count != 0) { query.Where(Exp.Eq("p.status", filter.ProjectStatuses.First())); } if (!string.IsNullOrEmpty(filter.SearchText)) { query.Where(Exp.Like("p.title", filter.SearchText, SqlLike.AnyWhere)); } query.GroupBy("p.id"); if (!isAdmin) { var isInTeam = new SqlQuery(ParticipantTable).Select("security").Where(Exp.EqColumns("p.id", "project_id") & Exp.Eq("removed", false) & Exp.Eq("participant_id", CurrentUserID)); query.Where(Exp.Eq("p.private", false) | Exp.Eq("p.responsible_id", CurrentUserID) | (Exp.Eq("p.private", true) & Exp.Exists(isInTeam))); } return(query); }
public WhileStmt(Exp e, IStmt stmt) { this.exp = e; this.stmt = stmt; }
public Project GetFullProjectById(int projectId) { var query = new SqlQuery(ProjectsTable + " p") .Select(ProjectColumns.Select(c => "p." + c).ToArray()) .Select(new SqlQuery("projects_milestones m").SelectCount().Where(Exp.EqColumns("m.project_id", "p.id")).Where(Exp.Eq("m.status", MilestoneStatus.Open))) .Select(new SqlQuery("projects_tasks t").SelectCount().Where(Exp.EqColumns("t.project_id", "p.id")).Where(!Exp.Eq("t.status", TaskStatus.Closed))) .Select(new SqlQuery("projects_project_participant pp").SelectCount().Where(Exp.EqColumns("pp.project_id", "p.id") & Exp.Eq("pp.removed", false))) .Where("p.id", projectId) .Where("p.tenant_id", Tenant); using (var db = new DbManager(DatabaseId)) { return(db.ExecuteList(query).ConvertAll(ToProjectFull).SingleOrDefault()); } }
public IfStmt(Exp e, IStmt t, IStmt el) { exp = e; thenS = t; elseS = el; }
public LogicExp(Exp e1, String cmp) { this.e1 = e1; this.e2 = new ConstExp(0); this.cmp = cmp; }
public void OnClick(){ busyoName = GameObject.Find ("GameScene").GetComponent<NowOnBusyo>().OnBusyoName; busyoId = GameObject.Find ("GameScene").GetComponent<NowOnBusyo>().OnBusyo; commonPopup (); if(buttonName == "kanjyo"){ GameObject.Find ("popText").GetComponent<Text> ().text ="感状授与"; //Busyo View string path = "Prefabs/Player/Unit/" + busyoId; GameObject Busyo = Instantiate (Resources.Load (path)) as GameObject; Busyo.transform.SetParent (GameObject.Find ("board(Clone)").transform); Busyo.transform.localScale = new Vector2 (3, 3); Busyo.GetComponent<DragHandler>().enabled = false; RectTransform busyo_transform = Busyo.GetComponent<RectTransform>(); busyo_transform.anchoredPosition = new Vector3(300,350,0); busyo_transform.sizeDelta = new Vector2( 100, 100); //Text Modification GameObject text = Busyo.transform.FindChild ("Text").gameObject; text.GetComponent<Text> ().color = new Color(255,255,255,255); RectTransform text_transform = text.GetComponent<RectTransform>(); text_transform.anchoredPosition = new Vector3 (-70,30,0); text_transform.sizeDelta = new Vector2( 630, 120); text.transform.localScale = new Vector2 (0.2f,0.2f); //Rank Text Modification GameObject rank = Busyo.transform.FindChild ("Rank").gameObject; RectTransform rank_transform = rank.GetComponent<RectTransform>(); rank_transform.anchoredPosition = new Vector3 (20,-50,0); rank_transform.sizeDelta = new Vector2( 200, 200); rank.GetComponent<Text>().fontSize = 200; //Common for Kanjyo string kanjyoPath = "Prefabs/Busyo/Kanjyo"; GameObject kanjyo = Instantiate (Resources.Load (kanjyoPath)) as GameObject; kanjyo.transform.SetParent (GameObject.Find ("board(Clone)").transform); kanjyo.transform.localScale = new Vector2 (1, 1); RectTransform kanjyo_transform = kanjyo.GetComponent<RectTransform>(); kanjyo_transform.anchoredPosition = new Vector3(0,0,0); //Busyo Lv GameObject.Find ("PopLvValue").GetComponent<Text>().text = pa_lv.ToString(); //Exp Status Bar Exp exp = new Exp(); GameObject expSlider = GameObject.Find ("ExpSlider"); int nextExp =exp.getDifExpforNextLv(pa_lv); string tempExp = "exp" + busyoId; int nowExp = PlayerPrefs.GetInt(tempExp); int startExp = nowExp - exp.getExpforNextLv(pa_lv-1); expSlider.GetComponent<Slider>().value = startExp; expSlider.GetComponent<Slider>().maxValue = nextExp; GameObject.Find ("CurrentExpValue").GetComponent<Text>().text = startExp.ToString(); GameObject.Find ("NextLvExpValue").GetComponent<Text>().text = nextExp.ToString(); Item item =new Item(); //Low kanjyo fields string kanjyoItemPath = "Prefabs/Item/Kanjyo/Kanjyo"; GameObject lowKanjyoItem = Instantiate (Resources.Load (kanjyoItemPath)) as GameObject; lowKanjyoItem.transform.SetParent(GameObject.Find ("KakyuKanjyo").transform); lowKanjyoItem.transform.localScale = new Vector2 (0.8f, 0.8f); RectTransform lowKanjyoTransform = lowKanjyoItem.GetComponent<RectTransform> (); lowKanjyoTransform.anchoredPosition = new Vector3 (-210, 125, 0); lowKanjyoTransform.sizeDelta = new Vector2 (100, 100); RectTransform lowKanjyoRank = lowKanjyoItem.transform.FindChild("KanjyoRank").GetComponent<RectTransform>(); lowKanjyoRank.anchoredPosition = new Vector3(-30,30,0); RectTransform lowKanjyoRect = lowKanjyoItem.transform.FindChild("Kanjyo").GetComponent<RectTransform>(); lowKanjyoRect.sizeDelta = new Vector2 (100, 100); Color lowColor = new Color (86f / 255f, 87f / 255f, 255f / 255f, 255f / 255f); lowKanjyoItem.GetComponent<Image>().color = lowColor; lowKanjyoItem.transform.FindChild("KanjyoRank").GetComponent<Text>().text = "下"; lowKanjyoItem.name = "Kanjyo1"; //Item Effect int effectForLow =item.getEffect(lowKanjyoItem.name); GameObject.Find ("KakyuKanjyoExpValue").GetComponent<Text>().text = effectForLow.ToString(); //Middle kanjyo fields GameObject midKanjyoItem = Instantiate (Resources.Load (kanjyoItemPath)) as GameObject; midKanjyoItem.transform.SetParent(GameObject.Find ("CyukyuKanjyo").transform); midKanjyoItem.transform.localScale = new Vector2 (0.8f, 0.8f); RectTransform midKanjyoTransform = midKanjyoItem.GetComponent<RectTransform> (); midKanjyoTransform.anchoredPosition = new Vector3 (-210, 125, 0); midKanjyoTransform.sizeDelta = new Vector2 (100, 100); RectTransform midKanjyoRank = midKanjyoItem.transform.FindChild("KanjyoRank").GetComponent<RectTransform>(); midKanjyoRank.anchoredPosition = new Vector3(-30,30,0); RectTransform midKanjyoRect = midKanjyoItem.transform.FindChild("Kanjyo").GetComponent<RectTransform>(); midKanjyoRect.sizeDelta = new Vector2 (100, 100); Color midColor = new Color (236f / 255f, 93f / 255f, 93f / 255f, 255f / 255f); midKanjyoItem.GetComponent<Image>().color = midColor; midKanjyoItem.transform.FindChild("KanjyoRank").GetComponent<Text>().text = "中"; midKanjyoItem.name = "Kanjyo2"; //Item Effect int effectForMid =item.getEffect(midKanjyoItem.name); GameObject.Find ("CyukyuKanjyoExpValue").GetComponent<Text>().text = effectForMid.ToString(); //Hight kanjyo fields GameObject highKanjyoItem = Instantiate (Resources.Load (kanjyoItemPath)) as GameObject; highKanjyoItem.transform.SetParent(GameObject.Find ("JyokyuKanjyo").transform); highKanjyoItem.transform.localScale = new Vector2 (0.8f, 0.8f); RectTransform hightKanjyoTransform = highKanjyoItem.GetComponent<RectTransform> (); hightKanjyoTransform.anchoredPosition = new Vector3 (-210, 125, 0); hightKanjyoTransform.sizeDelta = new Vector2 (100, 100); RectTransform highKanjyoRank = highKanjyoItem.transform.FindChild("KanjyoRank").GetComponent<RectTransform>(); highKanjyoRank.anchoredPosition = new Vector3(-30,30,0); RectTransform highKanjyoRect = highKanjyoItem.transform.FindChild("Kanjyo").GetComponent<RectTransform>(); highKanjyoRect.sizeDelta = new Vector2 (100, 100); Color hightColor = new Color (207f / 255f, 232f / 255f, 95f / 255f, 255f / 255f); highKanjyoItem.GetComponent<Image>().color = hightColor; highKanjyoItem.transform.FindChild("KanjyoRank").GetComponent<Text>().text = "上"; highKanjyoItem.name = "Kanjyo3"; //Item Effect int effectForHight =item.getEffect(highKanjyoItem.name); GameObject.Find ("JyokyuKanjyoExpValue").GetComponent<Text>().text = effectForHight.ToString(); //Posessing QTY string kanjyoQtyString = PlayerPrefs.GetString ("kanjyo"); char[] delimiterChars = {','}; string[] kanjyoList = kanjyoQtyString.Split (delimiterChars); GameObject.Find ("KakyuKanjyoQtyValue").GetComponent<Text>().text = kanjyoList[0]; GameObject.Find ("CyukyuKanjyoQtyValue").GetComponent<Text>().text = kanjyoList[1]; GameObject.Find ("JyokyuKanjyoQtyValue").GetComponent<Text>().text = kanjyoList[2]; //Setting Value on Button GameObject.Find ("DoKakyuKanjyo").GetComponent<DoKanjyo>().kanjyoList = kanjyoList; GameObject.Find ("DoCyukyuKanjyo").GetComponent<DoKanjyo>().kanjyoList = kanjyoList; GameObject.Find ("DoJyokyuKanjyo").GetComponent<DoKanjyo>().kanjyoList = kanjyoList; }else if(buttonName == "cyouhei"){ cyouheiView(ch_type); }else if(buttonName == "kunren"){ GameObject.Find ("popText").GetComponent<Text> ().text ="兵卒訓練"; string chigyouPath = "Prefabs/Busyo/Kunren"; GameObject chigyo = Instantiate (Resources.Load (chigyouPath)) as GameObject; chigyo.transform.SetParent(GameObject.Find ("board(Clone)").transform); chigyo.transform.localScale = new Vector2 (1, 1); RectTransform chigyoTransform = chigyo.GetComponent<RectTransform> (); chigyoTransform.anchoredPosition = new Vector3 (0, 0, 0); chigyo.name = "Kunren"; //Butai Name GameObject.Find ("PopTextButaiName").GetComponent<Text>().text = busyoName + " " + ch_heisyu; string chPath = "Prefabs/Player/Unit/" + ch_type; GameObject chObj = Instantiate (Resources.Load (chPath)) as GameObject; chObj.transform.SetParent(GameObject.Find ("Kunren").transform); chObj.transform.localScale = new Vector2 (8, 8); RectTransform chTransform = chObj.GetComponent<RectTransform> (); chTransform.anchoredPosition = new Vector3 (-260, 0, 0); //Butai Level GameObject.Find ("LvFrom").GetComponent<Text>().text = ch_lv.ToString(); GameObject.Find ("LvTo").GetComponent<Text>().text = (ch_lv + 1).ToString(); //Butai Status GameObject.Find ("PopHpValue").GetComponent<Text>().text = ch_hp.ToString(); GameObject.Find ("PopAtkValue").GetComponent<Text>().text = ch_status.ToString(); GameObject.Find ("PopDfcValue").GetComponent<Text>().text = ch_status.ToString(); GameObject.Find ("PopButaiNoValue").GetComponent<Text>().text = ch_num.ToString(); /* Slider Setting*/ //Required Money Entity_ch_exp_mst kunrenMst = Resources.Load ("Data/ch_exp_mst") as Entity_ch_exp_mst; int MaxLv = 100; //Max - 1 int myMoney = PlayerPrefs.GetInt ("money"); int totalMoney=0; List<int> requredMoneyByLv = new List<int>(); //Slider Initial Setting Slider lvSlider = GameObject.Find ("KunrenSlider").GetComponent<Slider>(); lvSlider.minValue = ch_lv + 1; lvSlider.value = ch_lv + 1; lvSlider.GetComponent<LvSlider>().toLv = GameObject.Find ("LvTo"); lvSlider.GetComponent<LvSlider>().hp = GameObject.Find ("PopHpValueUp"); lvSlider.GetComponent<LvSlider>().atk = GameObject.Find ("PopAtkValueUp"); lvSlider.GetComponent<LvSlider>().dfc = GameObject.Find ("PopDfcValueUp"); lvSlider.GetComponent<LvSlider>().requiredMoney = GameObject.Find ("RequiredMoneyValue"); int limitLv=0; //Lv100 Check int totalMoneyMax = kunrenMst.param[99].totalMoney; if(myMoney >= totalMoneyMax){ lvSlider.maxValue = 100; limitLv = 100; }else{ //Check Limitation of Lv up & Money for(int k=ch_lv; k<MaxLv; k++ ){ int requiredMoney = kunrenMst.param[k].requiredMoney; totalMoney = totalMoney + requiredMoney; if(myMoney < totalMoney){ //Limitation of Lv up //Setup Slider Limitation lvSlider.maxValue = k; limitLv=k; break; } } } //Money List for(int j=0; j<100;j++ ){ int totalRequiredMoney = kunrenMst.param[j].totalMoney; requredMoneyByLv.Add(totalRequiredMoney); } //Can Lvup if(limitLv!=ch_lv){ //ChildStatusGet List<int> statusByLv = new List<int>(); Entity_lvch_mst lvMst = Resources.Load ("Data/lvch_mst") as Entity_lvch_mst; int startline = 0; if(ch_type=="KB"){ startline = 0; }else if(ch_type=="YR"){ startline = 1; }else if(ch_type=="TP"){ startline = 2; }else if(ch_type=="YM"){ startline = 3; } object stslst = lvMst.param[startline]; Type t = stslst.GetType(); //for(int i=ch_lv+1; i<limitLv+1;i++){ for(int i=1; i<limitLv+1;i++){ String param = "lv" + i; FieldInfo f = t.GetField(param); int sts = (int)f.GetValue(stslst); sts = sts + pa_hp / 2; statusByLv.Add(sts); } lvSlider.GetComponent<LvSlider>().moneyList = requredMoneyByLv; lvSlider.GetComponent<LvSlider>().statusList = statusByLv; lvSlider.GetComponent<LvSlider>().pa_hp = pa_hp; //Initial Setting GameObject.Find ("RequiredMoneyValue").GetComponent<Text>().text = requredMoneyByLv[ch_lv].ToString(); GameObject.Find ("PopHpValueUp").GetComponent<Text>().text = ((statusByLv[ch_lv] - pa_hp/2)*10).ToString(); GameObject.Find ("PopAtkValueUp").GetComponent<Text>().text = statusByLv[ch_lv].ToString(); GameObject.Find ("PopDfcValueUp").GetComponent<Text>().text = statusByLv[ch_lv].ToString(); }else{ //Cannot Level up Case //disable slider lvSlider.value = ch_lv; GameObject.Find ("KunrenSlider").GetComponent<Slider>().enabled = false; //Money Color shortageColor = new Color (203f / 255f, 0f / 255f, 0f / 255f, 255f / 255f); Color greyColor = new Color (0f / 255f, 0f / 255f, 0f / 255f, 121f / 255f); GameObject rMoney = GameObject.Find ("RequiredMoneyValue"); rMoney.GetComponent<Text>().text = totalMoney.ToString(); rMoney.GetComponent<Text>().color = shortageColor; //Lv GameObject.Find ("LvTo").GetComponent<Text>().color = greyColor; //Next Lv Statu Entity_lvch_mst lvMst = Resources.Load ("Data/lvch_mst") as Entity_lvch_mst; int startline = 0; if(ch_type=="KB"){ startline = 0; }else if(ch_type=="YR"){ startline = 1; }else if(ch_type=="TP"){ startline = 2; }else if(ch_type=="YM"){ startline = 3; } object stslst = lvMst.param[startline]; Type t = stslst.GetType(); int nextLv = ch_lv + 1; String param = "lv" + nextLv.ToString(); FieldInfo f = t.GetField(param); int sts = (int)f.GetValue(stslst); sts = sts + pa_hp / 2; GameObject hp = GameObject.Find ("PopHpValueUp"); GameObject atk = GameObject.Find ("PopAtkValueUp"); GameObject dfc = GameObject.Find ("PopDfcValueUp"); hp.GetComponent<Text>().text = ((sts - pa_hp/2)*10).ToString(); hp.GetComponent<Text>().color = greyColor; atk.GetComponent<Text>().text = sts.ToString(); atk.GetComponent<Text>().color = greyColor; dfc.GetComponent<Text>().text = sts.ToString(); dfc.GetComponent<Text>().color = greyColor; GameObject.Find ("GiveKunren").GetComponent<DoKunren>().moneyOK = false; } } }
public virtual void VisitExp(Exp n) { }
public static List <StatisticUser> GetUserStatisticForLang(DateTime from, DateTime till) { using (var dbManager = new DbManager("tmresource")) { var sql = new SqlQuery("res_data as r1"); sql.SelectCount().Select(new[] { "res_cultures.title", "r1.authorLogin", "sum(length(r2.textvalue))" }) .InnerJoin("res_data as r2", Exp.And(Exp.EqColumns("r1.fileID", "r2.fileID"), Exp.EqColumns("r1.title", "r2.title"))) .InnerJoin("res_cultures", Exp.EqColumns("r1.cultureTitle", "res_cultures.title")) .Where(!Exp.Eq("r1.flag", 4)) .Where(!Exp.Eq("r1.flag", 3)) .Where(!Exp.Eq("r1.authorLogin", "Console")) .Where(!Exp.Eq("r1.cultureTitle", "Neutral")) .Where(Exp.Ge("r1.timeChanges", from)) .Where(Exp.Le("r1.timeChanges", till)) .Where("r2.cultureTitle", "Neutral") .GroupBy(new[] { "title", "authorLogin" }) .OrderBy("title", true) .OrderBy("authorLogin", true); return(dbManager.ExecuteList(sql).ConvertAll(r => GetUserStatisticFromDB(r))); } }
Exp MatchExp() { AlphaToken at; Object o1; switch(((Token)tokens.Peek()).Type){ case TokenType.NIL: tokens.Dequeue(); return new StringExp(String.Empty); //NIL is represented as an empty string case TokenType.NUMBER: return new IntExp(((NumberToken)tokens.Dequeue()).Value); case TokenType.STRING: return new StringExp(((StringToken)tokens.Dequeue()).Value); case TokenType.ALPHA: at = (AlphaToken)tokens.Dequeue(); if (DoVars != null && DoVars.Count != 0){ o1 = DoVars[at.Name]; if (o1 != null){ return new DoVarExp(at.Name, (int)o1); } } if (CurrentVarScope != null && CurrentVarScope.Count != 0){ o1 = CurrentVarScope[at.Name]; if (o1 != null){ return new VarExp(at.Name, (int)o1); } } o1 = GlobalVars[at.Name]; if(o1 != null){ return new GlobalVarExp(at.Name); } Console.WriteLine("Error 6: Undefined Symbol " + at.Name); return null; case TokenType.LPAREN: MatchToken(TokenType.LPAREN); Exp e1, e2, e3; Exp [] ea; //ListExp el1, el2, el3; Token o; switch(((Token)tokens.Peek()).Type){ case TokenType.PLUS: case TokenType.MINUS: case TokenType.MUL: case TokenType.DIVIDE: o = (Token)tokens.Dequeue(); e1 = MatchExp(); e2 = MatchExp(); MatchToken(TokenType.RPAREN); return new BinopExp(e1, o ,e2); case TokenType.LT: case TokenType.GT: case TokenType.EQ: case TokenType.LE: case TokenType.GE: o = (Token)tokens.Dequeue(); e1 = MatchExp(); e2 = MatchExp(); MatchToken(TokenType.RPAREN); return new CompareExp(e1, o ,e2); case TokenType.CDR: tokens.Dequeue(); e1 = MatchExp(); MatchToken(TokenType.RPAREN); ea = new Exp[1]; ea[0] = e1; return new CallExp("LispRuntime", "Cdr", ea, typeof(CList)); case TokenType.CAR: tokens.Dequeue(); e1 = MatchExp(); MatchToken(TokenType.RPAREN); return new CarExp(e1); case TokenType.CONS: tokens.Dequeue(); e1 = MatchExp(); e2 = MatchExp(); MatchToken(TokenType.RPAREN); ea = new Exp[2]; ea[0] = e1; ea[1] = e2; return new CallExp("LispRuntime", "Cons", ea, typeof(CList)); case TokenType.SUBST: tokens.Dequeue(); e1 = MatchExp(); e2 = MatchExp(); e3 = MatchExp(); MatchToken(TokenType.RPAREN); ea = new Exp[3]; ea[0] = e1; ea[1] = e2; ea[2] = e3; return new CallExp("LispRuntime", "Subst", ea, typeof(CList)); case TokenType.NULL: tokens.Dequeue(); e1 = MatchExp(); MatchToken(TokenType.RPAREN); ea = new Exp[1]; ea[0] = e1; return new CallExp("LispRuntime", "IsNull", ea, typeof(bool)); case TokenType.ATOM: tokens.Dequeue(); e1 = MatchExp(); MatchToken(TokenType.RPAREN); ea = new Exp[1]; ea[0] = e1; return new CallExp("LispRuntime", "IsAtom", ea, typeof(bool)); case TokenType.IF: tokens.Dequeue(); e1 = MatchExp(); e2 = MatchExp(); e3 = MatchExp(); MatchToken(TokenType.RPAREN); return new IfExp(e1, e2, e3); case TokenType.DO: tokens.Dequeue(); MatchToken(TokenType.LPAREN); ExpList el1, el2; if (CurrentVarScope == null){ Console.WriteLine("Error 13: Do must be present in a Function"); success = false; return null; } el1 = MatchDoExpList(); MatchToken(TokenType.RPAREN); //MatchToken(TokenType.LPAREN); el2 = MatchDoCondList(); MatchToken(TokenType.RPAREN); return new DoExp(el1, el2); case TokenType.SETQ: tokens.Dequeue(); AlphaToken t1 = (AlphaToken)MatchToken(TokenType.ALPHA); if(((Token)tokens.Peek()).Type == TokenType.NUMBER){ e1 = new IntExp(((NumberToken)tokens.Dequeue()).Value); } else e1 = MatchExp(); GlobalVars.Add(t1.Name, typeof(int)); MatchToken(TokenType.RPAREN); return new GlobalVarDef(t1.Name, e1); case TokenType.DEFUN: ArrayList param = new ArrayList(); int count = 0; if (CurrentVarScope != null){ Console.WriteLine("Error 12: Nested Functions Not Allowed"); success = false; return null; } CurrentVarScope = new Hashtable(); DoVars = new Hashtable(); DoVarsCount = 0; tokens.Dequeue(); AlphaToken t = (AlphaToken)MatchToken(TokenType.ALPHA); MatchToken(TokenType.LPAREN); while(((Token)tokens.Peek()).Type == TokenType.ALPHA){ param.Add(((AlphaToken)tokens.Dequeue()).Name); CurrentVarScope.Add(param[count], count++); } MatchToken(TokenType.RPAREN); //CurrentVarScope = param; Functions.Add(t.Name, count); e1 = MatchExp(); CurrentVarScope = null; MatchToken(TokenType.RPAREN); return new FunctionDef(t.Name, param, e1); case TokenType.ALPHA: at = (AlphaToken)tokens.Dequeue(); int iparams; if( Functions == null || Functions.Count == 0){ Console.WriteLine("Error 6: Undefined Symbol " + at.Name); return null; } else { o1 = Functions[at.Name]; if (o1 == null){ Console.WriteLine("Error 6: Undefined Symbol " + at.Name); return null; } else { iparams = (int)o1; } } Exp [] eparams = new Exp[iparams]; for (int i = 0; i < iparams; i++){ eparams[i] = MatchExp(); } MatchToken(TokenType.RPAREN); return new CallExp(null, at.Name, eparams); default: o = null; Console.WriteLine("Error 1"); success = false; return null; } default: Console.WriteLine("Error 7: Unexpected Token"); tokens.Dequeue(); success = false; return null; } }
public static IEnumerable <ResWord> GetListResWords(ResCurrent current, string search) { using (var dbManager = new DbManager("tmresource")) { var sql = new SqlQuery("res_data rd1") .Select("rd1.title", "rd1.fileid", "rd1.textValue", "rd1.description", "rd1.flag", "rd1.link", "rd2.id", "rd2.flag") .LeftOuterJoin("res_data rd2", Exp.EqColumns("rd1.fileid", "rd2.fileid") & Exp.EqColumns("rd1.title", "rd2.title") & Exp.Eq("rd2.cultureTitle", current.Language.Title)) .InnerJoin("res_files rf", Exp.EqColumns("rf.ID", "rd1.fileID")) .Where("rf.moduleName", current.Module.Name) .Where("rf.projectName", current.Project.Name) .Where("rd1.cultureTitle", "Neutral") .Where("rd1.flag != 4") .Where("rd1.resourceType", "text") .OrderBy("rd1.id", true); if (!String.IsNullOrEmpty(search)) { sql.Where(Exp.Like("rd1.textvalue", search)); } return(dbManager.ExecuteList(sql).ConvertAll(r => { var word = GetWord(r); if (r[6] != null) { word.Status = (int)r[7] == 3 ? WordStatusEnum.Changed : WordStatusEnum.Translated; } else { word.Status = WordStatusEnum.Untranslated; } return word; }).OrderBy(r => r.ValueFrom)); } }
public void createBusyoStatusView(string busyoId) { int lv = PlayerPrefs.GetInt (busyoId); StatusGet sts = new StatusGet (); int hp = sts.getHp (int.Parse (busyoId), lv); int atk = sts.getAtk (int.Parse (busyoId), lv); int dfc = sts.getDfc (int.Parse (busyoId), lv); int spd = sts.getSpd (int.Parse (busyoId), lv); int adjHp = hp * 100; int adjAtk = atk * 10; int adjDfc = dfc * 10; GameObject.Find ("LvValue").GetComponent<Text> ().text = lv.ToString (); GameObject.Find ("TosotsuValue").GetComponent<Text> ().text = adjHp.ToString (); GameObject.Find ("BuyuuValue").GetComponent<Text> ().text = adjAtk.ToString (); GameObject.Find ("ChiryakuValue").GetComponent<Text> ().text = adjDfc.ToString (); GameObject.Find ("SpeedValue").GetComponent<Text> ().text = spd.ToString (); //Exp string expId = "exp" + busyoId.ToString (); string expString = ""; int nowExp = PlayerPrefs.GetInt(expId); Exp exp = new Exp (); int requiredExp= exp.getExpforNextLv(lv); expString = nowExp + "/" + requiredExp; GameObject.Find ("ExpValue").GetComponent<Text> ().text = expString; //Kahou status KahouStatusGet kahouSts = new KahouStatusGet (); string[] KahouStatusArray =kahouSts.getKahouForStatus (busyoId,adjHp,adjAtk,adjDfc,spd); int totalBusyoHp =0; for(int i=0;i<KahouStatusArray.Length;i++){ string status = KahouStatusArray[i]; if(i==0){ //Attack GameObject.Find ("KahouAtkValue").GetComponent<Text>().text = "+" + status; }else if(i==1){ //HP GameObject.Find ("KahouHpValue").GetComponent<Text>().text = "+" + status; totalBusyoHp = adjHp + int.Parse(status); }else if(i==2){ //DFC GameObject.Find ("KahouDfcValue").GetComponent<Text>().text = "+" + status; }else if(i==3){ //SPD GameObject.Find ("KahouSpdValue").GetComponent<Text>().text = "+" + status; } } //Butai Status string heiId = "hei" + busyoId.ToString (); string chParam = PlayerPrefs.GetString (heiId, "0"); char[] delimiterChars = {':'}; string[] ch_list = chParam.Split (delimiterChars); string ch_type = ch_list [0]; int ch_num = int.Parse (ch_list [1]); int ch_lv = int.Parse (ch_list [2]); float ch_status = float.Parse (ch_list [3]); string heisyu = ""; if (ch_type == "KB") { heisyu = "騎馬隊"; } else if (ch_type == "YR") { heisyu = "槍隊"; } else if (ch_type == "TP") { heisyu = "鉄砲隊"; } else if (ch_type == "YM") { heisyu = "弓隊"; } GameObject.Find ("ChildNameValue").GetComponent<Text> ().text = heisyu; GameObject.Find ("ChildQtyValue").GetComponent<Text> ().text = ch_num.ToString (); GameObject.Find ("ChildLvValue").GetComponent<Text> ().text = ch_lv.ToString (); //Jyosyu Handling JyosyuHeiryoku jyosyuHei = new JyosyuHeiryoku (); float addHei = (float)jyosyuHei.GetJyosyuHeiryoku (busyoId); float hei = ch_status * 10; string heiText = hei.ToString() + "<size=150><Color=#35D74BFF>+" + addHei + "</Color></size>"; GameObject.Find ("ChildHeiryokuValue").GetComponent<Text> ().text = heiText; float chAtkDfc = ch_status + totalBusyoHp / 200; string chAtkDfcString = chAtkDfc.ToString () + "/" + chAtkDfc.ToString (); GameObject.Find ("ChildStatusValue").GetComponent<Text> ().text = chAtkDfcString; //Child Image foreach (Transform n in GameObject.Find ("Img").transform) { GameObject.Destroy (n.gameObject); } string chPath = "Prefabs/Player/Unit/" + ch_type; GameObject chObj = Instantiate (Resources.Load (chPath)) as GameObject; chObj.transform.SetParent(GameObject.Find ("Img").transform); RectTransform chTransform = chObj.GetComponent<RectTransform> (); chTransform.anchoredPosition = new Vector3 (-200, -50, 0); chTransform.sizeDelta = new Vector2 (40, 40); chObj.transform.localScale = new Vector2 (4, 4); //Child Status Transfer to Button//Keep busyo name GameObject kanjyo = GameObject.Find ("ButtonKanjyo"); kanjyo.GetComponent<BusyoStatusButton> ().pa_lv = lv; GameObject chigyo = GameObject.Find ("ButtonCyouhei"); chigyo.GetComponent<BusyoStatusButton> ().ch_type = ch_type; chigyo.GetComponent<BusyoStatusButton> ().ch_heisyu = heisyu; chigyo.GetComponent<BusyoStatusButton> ().ch_num = ch_num; chigyo.GetComponent<BusyoStatusButton> ().ch_status = chAtkDfc; chigyo.GetComponent<BusyoStatusButton> ().ch_hp = hei; chigyo.GetComponent<BusyoStatusButton> ().pa_hp = totalBusyoHp/100; GameObject kunren = GameObject.Find ("ButtonKunren"); kunren.GetComponent<BusyoStatusButton> ().ch_type = ch_type; kunren.GetComponent<BusyoStatusButton> ().ch_heisyu = heisyu; kunren.GetComponent<BusyoStatusButton> ().ch_lv = ch_lv; kunren.GetComponent<BusyoStatusButton> ().ch_status = chAtkDfc; kunren.GetComponent<BusyoStatusButton> ().ch_hp = hei ; kunren.GetComponent<BusyoStatusButton> ().ch_num = ch_num; kunren.GetComponent<BusyoStatusButton> ().pa_hp = totalBusyoHp/100; //Parametor Setting GameObject.Find ("GameScene").GetComponent<NowOnBusyo>().OnBusyo = busyoId; }
public List <Project> GetById(ICollection projectIDs) { using (var db = new DbManager(DatabaseId)) { return(db.ExecuteList(Query(ProjectsTable).Select(ProjectColumns).Where(Exp.In("id", projectIDs))) .ConvertAll(ToProject) .ToList()); } }
public override IEnumerable <Tuple <Feed, object> > GetFeeds(FeedFilter filter) { var q1 = new SqlQuery("projects_messages d") .Select(DiscussionColumns().Select(d => "d." + d).ToArray()) .Select(ProjectColumns().Select(p => "p." + p).ToArray()) .Select(CommentColumns().Select(c => "c." + c).ToArray()) .InnerJoin("projects_projects p", Exp.EqColumns("p.id", "d.project_id") & Exp.Eq("p.tenant_id", filter.Tenant)) .LeftOuterJoin("projects_comments c", Exp.EqColumns("c.target_uniq_id", "concat('Message_', d.id)") & Exp.Eq("c.tenant_id", filter.Tenant) & Exp.Eq("c.inactive", 0)) .Where("d.tenant_id", filter.Tenant) .Where(Exp.Between("d.create_on", filter.Time.From, filter.Time.To)); var q2 = new SqlQuery("projects_messages d") .Select(DiscussionColumns().Select(d => "d." + d).ToArray()) .Select(ProjectColumns().Select(p => "p." + p).ToArray()) .Select(CommentColumns().Select(c => "c." + c).ToArray()) .InnerJoin("projects_projects p", Exp.EqColumns("p.id", "d.project_id") & Exp.Eq("p.tenant_id", filter.Tenant)) .LeftOuterJoin("projects_comments c", Exp.EqColumns("c.target_uniq_id", "concat('Message_', d.id)") & Exp.Eq("c.tenant_id", filter.Tenant) & Exp.Eq("c.inactive", 0)) .Where("d.tenant_id", filter.Tenant) .Where(Exp.Between("c.create_on", filter.Time.From, filter.Time.To)); using (var db = new DbManager(DbId)) { var comments = db.ExecuteList(q1.Union(q2)).ConvertAll(ToComment); var groupedDiscussions = comments.GroupBy(c => c.Discussion.ID); return(groupedDiscussions .Select(d => new Tuple <Message, IEnumerable <ProjectComment> >(d.First().Discussion, d)) .Select(ToFeed)); } }
public LogicExp(Exp e1, Exp e2, String cmp) { this.e1 = e1; this.e2 = e2; this.cmp = cmp; }
public List <Project> GetByContactID(int contactId) { IEnumerable <int> projectIds; using (var crmDb = new DbManager("crm")) { projectIds = crmDb .ExecuteList(Query("crm_projects").Select("project_id").Where("contact_id", contactId)) .ConvertAll(r => Convert.ToInt32(r[0])); } var query = new SqlQuery(ProjectsTable + " p") .Select(ProjectColumns.Select(c => "p." + c).ToArray()) .Select(new SqlQuery(MilestonesTable + " m").SelectCount().Where(Exp.EqColumns("m.project_id", "p.id")).Where(Exp.Eq("m.status", MilestoneStatus.Open))) .Select(new SqlQuery(TasksTable + " t").SelectCount().Where(Exp.EqColumns("t.project_id", "p.id")).Where(!Exp.Eq("t.status", TaskStatus.Closed))) .Select(new SqlQuery(ParticipantTable + " pp").SelectCount().Where(Exp.EqColumns("pp.project_id", "p.id") & Exp.Eq("pp.removed", false))) .Where(Exp.In("p.id", projectIds.ToList())) .Where("p.tenant_id", Tenant); using (var db = new DbManager(DatabaseId)) { return(db.ExecuteList(query) .Select(r => { var prj = ToProject(r); prj.TaskCount = Convert.ToInt32(r[11]); prj.MilestoneCount = Convert.ToInt32(r[10]); prj.ParticipantCount = Convert.ToInt32(r[12]); return prj; } ) .ToList()); } }
public NewStmt(String id, Exp exp) { this.id = id; this.exp = exp; }
public List <int> GetTaskCount(List <int> projectId, TaskStatus?taskStatus, bool isAdmin) { var query = new SqlQuery(TasksTable + " t") .Select("t.project_id").SelectCount() .Where(Exp.In("t.project_id", projectId)) .Where("t.tenant_id", Tenant) .GroupBy("t.project_id"); if (taskStatus != null) { if (taskStatus == TaskStatus.Open) { query.Where(!Exp.Eq("t.status", TaskStatus.Closed)); } else { query.Where("t.status", TaskStatus.Closed); } } if (!isAdmin) { query.InnerJoin(ProjectsTable + " p", Exp.EqColumns("t.project_id", "p.id") & Exp.EqColumns("t.tenant_id", "p.tenant_id")) .LeftOuterJoin(TasksResponsibleTable + " ptr", Exp.EqColumns("t.tenant_id", "ptr.tenant_id") & Exp.EqColumns("t.id", "ptr.task_id") & Exp.Eq("ptr.responsible_id", CurrentUserID)) .LeftOuterJoin(ParticipantTable + " ppp", Exp.EqColumns("p.id", "ppp.project_id") & Exp.Eq("ppp.removed", false) & Exp.Eq("ppp.participant_id", CurrentUserID)) .Where(Exp.Eq("p.private", false) | !Exp.Eq("ptr.responsible_id", null) | (Exp.Eq("p.private", true) & !Exp.Eq("ppp.security", null) & !Exp.Eq("ppp.security & " + (int)ProjectTeamSecurity.Tasks, (int)ProjectTeamSecurity.Tasks))); } using (var db = new DbManager(DatabaseId)) { var result = db.ExecuteList(query); return(projectId.ConvertAll( pid => { var res = result.Find(r => Convert.ToInt32(r[0]) == pid); return res == null ? 0 : Convert.ToInt32(res[1]); } )); } }
public static void RemoveFeedAggregate(DateTime fromTime) { using (var db = DbManager.FromHttpContext(Constants.FeedDbId)) using (var command = db.Connection.CreateCommand()) using (var tx = db.Connection.BeginTransaction(IsolationLevel.ReadUncommitted)) { command.Transaction = tx; command.CommandTimeout = 60 * 60; // a hour var dialect = DbRegistry.GetSqlDialect(Constants.FeedDbId); if (dialect.SupportMultiTableUpdate) { command.ExecuteNonQuery("delete from feed_aggregate, feed_users using feed_aggregate, feed_users where id = feed_id and aggregated_date < @date", new { date = fromTime }); } else { command.ExecuteNonQuery(new SqlDelete("feed_users").Where(Exp.In("feed_id", new SqlQuery("feed_aggregate").Select("id").Where(Exp.Lt("aggregated_date", fromTime)))), dialect); command.ExecuteNonQuery(new SqlDelete("feed_aggregate").Where(Exp.Lt("aggregated_date", fromTime)), dialect); } tx.Commit(); } }
private static List <FeedResultItem> GetFeedsInternal(FeedApiFilter filter) { var query = new SqlQuery("feed_aggregate a") .InnerJoin("feed_users u", Exp.EqColumns("a.id", "u.feed_id")) .Select("a.json, a.module, a.author, a.modified_by, a.group_id, a.created_date, a.modified_date, a.aggregated_date") .Where("a.tenant", CoreContext.TenantManager.GetCurrentTenant().TenantId) .Where( !Exp.Eq("a.modified_by", SecurityContext.CurrentAccount.ID) & Exp.Eq("u.user_id", SecurityContext.CurrentAccount.ID) ) .OrderBy("a.modified_date", false) .SetFirstResult(filter.Offset) .SetMaxResults(filter.Max); if (filter.OnlyNew) { query.Where(Exp.Ge("a.aggregated_date", filter.From)); } else { if (1 < filter.From.Year) { query.Where(Exp.Ge("a.modified_date", filter.From)); } if (filter.To.Year < 9999) { query.Where(Exp.Le("a.modified_date", filter.To)); } } if (!string.IsNullOrEmpty(filter.Product)) { query.Where("a.product", filter.Product); } if (filter.Author != Guid.Empty) { query.Where("a.modified_by", filter.Author); } if (filter.SearchKeys != null && filter.SearchKeys.Length > 0) { var exp = filter.SearchKeys .Where(s => !string.IsNullOrEmpty(s)) .Select(s => s.Replace("\\", "\\\\").Replace("%", "\\%").Replace("_", "\\_")) .Aggregate(Exp.False, (cur, s) => cur | Exp.Like("a.keywords", s, SqlLike.AnyWhere)); query.Where(exp); } using (var db = DbManager.FromHttpContext(Constants.FeedDbId)) { var news = db .ExecuteList(query) .ConvertAll(r => new FeedResultItem( Convert.ToString(r[0]), Convert.ToString(r[1]), new Guid(Convert.ToString(r[2])), new Guid(Convert.ToString(r[3])), Convert.ToString(r[4]), TenantUtil.DateTimeFromUtc(Convert.ToDateTime(r[5])), TenantUtil.DateTimeFromUtc(Convert.ToDateTime(r[6])), TenantUtil.DateTimeFromUtc(Convert.ToDateTime(r[7])))); return(news); } }
public WriteHeapStmt(String id, Exp exp) { this.id = id; this.exp = exp; }
public LogicalExp(Exp e1, String op, Exp e2) { this.e1 = e1; this.e2 = e2; this.op = op; }
public Argument(Exp name, Exp defval, string filename, int start, int end) : base(filename, start, end) { this.name = name; this.defval = defval; }
public virtual Exp GetExpression() { return(Exp.Eq(ContactsTable.Columns.Tenant.Prefix(MAIL_CONTACTS), Tenant) & Exp.Eq(ContactsTable.Columns.User.Prefix(MAIL_CONTACTS), User)); }
public IfStmt(Exp e, IStmt then, IStmt otherwise) { this.exp = e; this.thenStmt = then; this.elseStmt = otherwise; }
public Condicional(Exp Condicion, LinkedList <NodoAST> Instrucciones) { this.Condicion = Condicion; this.condInstrucciones = Instrucciones; }
private string GenerateBaseClassName(Exp exp) { return exp.ToString(); }
public IEnumerable <Tag> GetNewTags(Guid subject, Folder parentFolder, bool deepSearch) { var folderId = OneDriveDaoSelector.ConvertId(parentFolder.ID); var fakeFolderId = parentFolder.ID.ToString(); using (var db = GetDb()) { var entryIDs = db.ExecuteList(Query("files_thirdparty_id_mapping") .Select("hash_id") .Where(Exp.Like("id", fakeFolderId, SqlLike.StartWith))) .ConvertAll(x => x[0]); if (!entryIDs.Any()) { return(new List <Tag>()); } var sqlQuery = new SqlQuery("files_tag ft") .Select("ft.name", "ft.flag", "ft.owner", "ftl.entry_id", "ftl.entry_type", "ftl.tag_count", "ft.id") .Distinct() .LeftOuterJoin("files_tag_link ftl", Exp.EqColumns("ft.tenant_id", "ftl.tenant_id") & Exp.EqColumns("ft.id", "ftl.tag_id")) .Where(Exp.Eq("ft.tenant_id", TenantID) & Exp.Eq("ftl.tenant_id", TenantID) & Exp.Eq("ft.flag", (int)TagType.New) & Exp.In("ftl.entry_id", entryIDs)); if (subject != Guid.Empty) { sqlQuery.Where(Exp.Eq("ft.owner", subject)); } var tags = db.ExecuteList(sqlQuery).ConvertAll(r => new Tag { TagName = Convert.ToString(r[0]), TagType = (TagType)r[1], Owner = new Guid(r[2].ToString()), EntryId = MappingID(r[3]), EntryType = (FileEntryType)r[4], Count = Convert.ToInt32(r[5]), Id = Convert.ToInt32(r[6]) }); if (deepSearch) { return(tags); } var folderFileIds = new[] { fakeFolderId } .Concat(GetChildren(folderId)); return(tags.Where(tag => folderFileIds.Contains(tag.EntryId.ToString()))); } }
//arglist: (argument ',')* (argument [','] // |'*' test (',' argument)* [',' '**' test] // |'**' test) public Application arglist(Exp core, int posStart) { var args = new List<Argument>(); var keywords = new List<Argument>(); Exp stargs = null; Exp kwargs = null; Token token; if (Peek(TokenType.RPAREN, out token)) return new Application(core, args, keywords, stargs, kwargs, filename, core.Start, token.End); for (;;) { if (PeekAndDiscard(TokenType.OP_STAR)) { if (stargs != null) throw new NotSupportedException("More than one stargs."); stargs = test(); } else if (PeekAndDiscard(TokenType.OP_STARSTAR)) { if (kwargs != null) throw new NotSupportedException("More than one kwargs."); kwargs = test(); } else { var arg = argument(); if (arg != null) args.Add(arg); } if (!PeekAndDiscard(TokenType.COMMA, out token)) break; if (Peek(TokenType.RPAREN, out token)) break; } return new Application(core, args, keywords, stargs, kwargs, filename, posStart, token.End); }
public int SaveOrUpdate(TaskTemplate item) { using (var db = GetDb()) { if (item.ID == 0 && db.ExecuteScalar <int>(Query("crm_task_template").SelectCount().Where(Exp.Eq("id", item.ID))) == 0) { item.ID = db.ExecuteScalar <int>( Insert("crm_task_template") .InColumnValue("id", 0) .InColumnValue("title", item.Title) .InColumnValue("category_id", item.CategoryID) .InColumnValue("description", item.Description) .InColumnValue("responsible_id", item.ResponsibleID) .InColumnValue("is_notify", item.isNotify) .InColumnValue("offset", item.Offset.Ticks) .InColumnValue("deadLine_is_fixed", item.DeadLineIsFixed) .InColumnValue("container_id", item.ContainerID) .InColumnValue("create_on", DateTime.UtcNow) .InColumnValue("create_by", ASC.Core.SecurityContext.CurrentAccount.ID) .InColumnValue("last_modifed_on", DateTime.UtcNow) .InColumnValue("last_modifed_by", ASC.Core.SecurityContext.CurrentAccount.ID) .Identity(1, 0, true)); } else { db.ExecuteNonQuery( Update("crm_task_template") .Set("title", item.Title) .Set("category_id", item.CategoryID) .Set("description", item.Description) .Set("responsible_id", item.ResponsibleID) .Set("is_notify", item.isNotify) .Set("offset", item.Offset.Ticks) .Set("deadLine_is_fixed", item.DeadLineIsFixed) .Set("container_id", item.ContainerID) .Set("last_modifed_on", DateTime.UtcNow) .Set("last_modifed_by", ASC.Core.SecurityContext.CurrentAccount.ID) .Where("id", item.ID)); } return(item.ID); } }
public OverflowSubExp(ILineContext context, Exp e1, Exp e2) : base(context, e1, e2) { }
public TaskTemplate GetNext(int taskID) { using (var db = GetDb()) using (var tx = db.BeginTransaction()) { var sqlResult = db.ExecuteList( Query("crm_task_template_task tblTTT") .Select("tblTT.container_id") .Select("tblTT.sort_order") .LeftOuterJoin("crm_task_template tblTT", Exp.EqColumns("tblTT.tenant_id", "tblTTT.tenant_id") & Exp.EqColumns("tblTT.id", "tblTTT.task_template_id")) .Where(Exp.Eq("tblTTT.task_id", taskID) & Exp.Eq("tblTT.tenant_id", TenantID))); if (sqlResult.Count == 0) { return(null); } var result = db.ExecuteList(GetQuery(Exp.Eq("container_id", sqlResult[0][0]) & Exp.Gt("sort_order", sqlResult[0][1]) & Exp.Eq("deadLine_is_fixed", false)).SetMaxResults(1)).ConvertAll( row => ToObject(row)); db.ExecuteNonQuery(Delete("crm_task_template_task").Where(Exp.Eq("task_id", taskID))); tx.Commit(); if (result.Count == 0) { return(null); } return(result[0]); } }
public ExclamationExp(ILineContext context, Exp e1, Exp e2) : base(context, e1, e2) { }
public virtual int SaveOrUpdate(TaskTemplateContainer item) { using (var db = GetDb()) { if (item.ID == 0 && db.ExecuteScalar <int>(Query("crm_task_template_container").SelectCount().Where(Exp.Eq("id", item.ID))) == 0) { item.ID = db.ExecuteScalar <int>( Insert("crm_task_template_container") .InColumnValue("id", 0) .InColumnValue("title", item.Title) .InColumnValue("entity_type", (int)item.EntityType) .InColumnValue("create_on", DateTime.UtcNow) .InColumnValue("create_by", ASC.Core.SecurityContext.CurrentAccount.ID) .InColumnValue("last_modifed_on", DateTime.UtcNow) .InColumnValue("last_modifed_by", ASC.Core.SecurityContext.CurrentAccount.ID) .Identity(1, 0, true)); } else { db.ExecuteScalar <int>( Update("crm_task_template_container") .Set("title", item.Title) .Set("entity_type", (int)item.EntityType) .Set("last_modifed_on", DateTime.UtcNow) .Set("last_modifed_by", ASC.Core.SecurityContext.CurrentAccount.ID) .Where(Exp.Eq("id", item.ID))); } return(item.ID); } }
public RelationalExp(Exp e1, String op, Exp e2) { this.e1 = e1; this.e2 = e2; this.op = op; }
public IEnumerable <Tag> SaveTags(params Tag[] tags) { var result = new List <Tag>(); if (tags == null) { return(result); } tags = tags.Where(x => x != null && !x.EntryId.Equals(null) && !x.EntryId.Equals(0)).ToArray(); if (tags.Length == 0) { return(result); } lock (syncRoot) { using (var DbManager = GetDb()) using (var tx = DbManager.BeginTransaction()) { var mustBeDeleted = DbManager.ExecuteList(Query("files_tag ft") .Select("ftl.tag_id", "ftl.entry_id", "ftl.entry_type") .Distinct() .InnerJoin("files_tag_link ftl", Exp.EqColumns("ft.tenant_id", "ftl.tenant_id") & Exp.EqColumns("ft.id", "ftl.tag_id")) .Where(Exp.Eq("ft.flag", (int)TagType.New) & Exp.Le("create_on", TenantUtil.DateTimeNow().AddMonths(-3)))); foreach (var row in mustBeDeleted) { DbManager.ExecuteNonQuery(Delete("files_tag_link") .Where(Exp.Eq("tag_id", row[0]) & Exp.Eq("entry_id", row[1]) & Exp.Eq("entry_type", row[2]))); } DbManager.ExecuteNonQuery(Delete("files_tag").Where(Exp.EqColumns("0", Query("files_tag_link l").SelectCount().Where(Exp.EqColumns("tag_id", "id"))))); var createOn = TenantUtil.DateTimeToUtc(TenantUtil.DateTimeNow()); var cacheTagId = new Dictionary <String, int>(); foreach (var t in tags) { int id; var cacheTagIdKey = String.Join("/", new[] { TenantID.ToString(), t.Owner.ToString(), t.TagName, ((int)t.TagType).ToString(CultureInfo.InvariantCulture) }); if (!cacheTagId.TryGetValue(cacheTagIdKey, out id)) { id = DbManager.ExecuteScalar <int>(Query("files_tag") .Select("id") .Where("owner", t.Owner.ToString()) .Where("name", t.TagName) .Where("flag", (int)t.TagType)); if (id == 0) { var i1 = Insert("files_tag") .InColumnValue("id", 0) .InColumnValue("name", t.TagName) .InColumnValue("owner", t.Owner.ToString()) .InColumnValue("flag", (int)t.TagType) .Identity(1, 0, true); id = DbManager.ExecuteScalar <int>(i1); } cacheTagId.Add(cacheTagIdKey, id); } t.Id = id; result.Add(t); var i2 = Insert("files_tag_link") .InColumnValue("tag_id", id) .InColumnValue("entry_id", MappingID(t.EntryId, true)) .InColumnValue("entry_type", (int)t.EntryType) .InColumnValue("create_by", ASC.Core.SecurityContext.CurrentAccount.ID) .InColumnValue("create_on", createOn) .InColumnValue("tag_count", t.Count); DbManager.ExecuteNonQuery(i2); } tx.Commit(); } } return(result); }