} // 最大移动距离 public bool InAttackRange(int tx, int ty) { GetPosInMap(out int x, out int y); var dist = MU.ManhattanDist(x, y, tx, ty); return(FC.IndexOf(AttackRange, dist) >= 0); }
void onmsg(MsgCode msg) { if (msg == MsgCode.Null) { return; } if (msg == MsgCode.User_Login) { // is user logined var user = FC.Get <User> (MsgCode.User_Login_Get); if (user != default(User)) { return; } var users = FC.QueryUser(); var retlen = 0; if (users.Length == 1) { Msg_User_Login login = new Msg_User_Login(); login.user = users[0]; login.password = "******"; FC.Send <Msg_User_Login> (MsgCode.User_Login, login, ref retlen); } } this.msg.Show(msg.ToString()); }
// 彻底销毁一个模型 private void DestroyModel(MapUnit mu) { var lst = new List <Transform>(); if (mu.Attack01Stub != null && mu.Attack01Stub.childCount > 0) { FC.For(mu.Attack01Stub.childCount, (i) => { lst.Add(mu.Attack01Stub.GetChild(i)); }); } if (mu.Attack02Stub != null && mu.Attack02Stub.childCount > 0) { FC.For(mu.Attack02Stub.childCount, (i) => { lst.Add(mu.Attack02Stub.GetChild(i)); }); } foreach (var c in lst) { var ae = c.GetComponent <AttackEffect>(); if (ae != null) { EC.DestroyEffect(ae); } var aa = c.GetComponent <AttackAudio>(); if (aa != null) { AC.DestroyAudio(aa); } } mu.MG = null; mu.transform.SetParent(null); mu.gameObject.SetActive(false); Destroy(mu.gameObject); }
// マウスのポインタ生成の関数 private GameObject CreateMousePointa(GameObject mouse) { GameObject obj = Instantiate(mouse, transform.position, Quaternion.identity); FC.SettingOrderInLayer(obj, Order.orerMouse); return(obj); }
public SeedCmsStylesheetProperty(Guid seedId, FC.DAL.UmbracoModel.UmbracoModel context) : base(seedId, context, "cmsStylesheetProperty") { try { if (context.SeedVersion.Find(seedId) == null) { List<UmbracoModel.cmsStylesheetProperty> input = new List<UmbracoModel.cmsStylesheetProperty>(); List<MSModel.cmsStylesheetProperty> output = new List<MSModel.cmsStylesheetProperty>(); output = MSMod.cmsStylesheetProperty.ToList(); foreach (var r in output) { var res = Mapper.Map<UmbracoModel.cmsStylesheetProperty>(r); input.Add(res); } context.cmsStylesheetProperty.AddRange(input); context.SaveChanges(); context.SeedVersion.Add(Version); context.SaveChanges(); } } catch (Exception ex) { _HandleException(ex); } }
public void Build() { // 创建新按钮 FC.For(choices.Length, (i) => { var go = Instantiate(ChoiceBtn); go.transform.SetParent(SelectArea.transform); go.GetComponentInChildren <Text>().text = ChoicesName[i]; var choiceTag = choices[i]; go.GetComponent <Button>().onClick.AddListener(() => { OnSelectOne(choiceTag); }); go.SetActive(true); go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; choiceBtns.Add(go); }); // 菜单显示尺寸 width = choiceBtns[0].GetComponent <RectTransform>().rect.width; height = choiceBtns[0].GetComponent <RectTransform>().rect.height; choiceBtns[0].transform.localPosition = new Vector3(-width * 0.75f, 0, 0); choiceBtns[1].transform.localPosition = new Vector3(width * 0.75f, 0, 0); AdjustPos(); }
// 反序列化一个录像 public static BattleReplay Deserialize(IReadableBuffer data) { var replay = DeserializeHeader(data); string lastMsgTitle = null; byte[] lastMsgData = null; var msgs = new List <KeyValuePair <string, IReadableBuffer> >(); var cnt = data.ReadInt(); FC.For(cnt, (i) => { // 这里生成 msg 必须用网络字节序,因为这里的数据等同于是直接伪装成了网络上的消息, // 对 Room4Client 来说是一致读取的 var sameAsLastOne = data.ReadBool(); if (!sameAsLastOne) { var msgTitle = data.ReadString(); var msgLen = data.ReadInt(); var msgBody = data.ReadBytes(msgLen); msgs.Add(new KeyValuePair <string, IReadableBuffer>(msgTitle, new RingBuffer(true, true, msgBody))); lastMsgTitle = msgTitle; lastMsgData = msgBody; } else { msgs.Add(new KeyValuePair <string, IReadableBuffer>(lastMsgTitle, new RingBuffer(true, true, lastMsgData))); } }); replay.Msgs = msgs; return(replay); }
void Create() { var sz = MG.Room.MapSize; var cols = (int)sz.x; var rows = (int)sz.y; var lm = transform.Find("Line").gameObject; var lst = new List <LineRenderer>(); FC.For(rows + 2, (y) => { var l = Instantiate(lm) as GameObject; var lr = l.GetComponent <LineRenderer>(); lr.positionCount = 2; lr.SetPosition(0, new Vector3(0 - 0.5f, 0.1f, y - 0.5f)); lr.SetPosition(1, new Vector3(cols + 0.5f, 0.1f, y - 0.5f)); lr.gameObject.SetActive(true); lr.transform.SetParent(transform, false); lst.Add(lr); }); FC.For(cols + 2, (x) => { var l = Instantiate(lm) as GameObject; var lr = l.GetComponent <LineRenderer>(); lr.positionCount = 2; lr.SetPosition(0, new Vector3(x - 0.5f, 0.1f, 0 - 0.5f)); lr.SetPosition(1, new Vector3(x - 0.5f, 0.1f, rows + 0.5f)); lr.gameObject.SetActive(true); lr.transform.SetParent(transform, false); lst.Add(lr); }); lrs = lst.ToArray(); }
void RefreshCells() { var sz = MG.Room.MapSize; var cols = (int)sz.x; var rows = (int)sz.y; var n = 0; var cm = transform.Find("Cell").gameObject; FC.For2(cols, rows, (x, y) => { if (MG.Room.CheckSpareSpace(x, y, 1)) { return; } if (n >= cells.Count) { var c = Instantiate(cm) as GameObject; c.SetActive(true); c.transform.SetParent(transform, false); cells.Add(c); } cells[n++].transform.localPosition = new Vector3(x, 0.1f, y); }); FC.For(n, cells.Count, (i) => { cells[i].SetActive(false); }); }
// 检查战斗结束条件,0 表示尚未结束,否则返回值表示胜利玩家 // 检查战斗结束条件 public virtual int CheckEndCondition() { // 双方至少各存活一个角色 var team1Survived = false; var team2Survived = false; FC.For2(Map.Width, Map.Height, (x, y) => { var warrior = Map.GetAt <Warrior>(x, y); if (warrior != null && !warrior.IsDead) { if (warrior.Team == 1) { team1Survived = true; } else { team2Survived = true; } } }, () => !team1Survived || !team2Survived); if (team1Survived && !team2Survived) { return(1); } else if (team2Survived && !team1Survived) { return(2); } else { return(0); } }
public void BuildMapGrids() { JudgeMapStatus(); if (!IsMapCreated) { Map = new BattleMap(10, 6, (x, y) => TileType.Grass); Tiles = new MapTile[Map.Width, Map.Height]; FC.For2(Map.Width, Map.Height, (x, y) => { var tile = Instantiate(MapTile); tile.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("TestRes/BattleMap/MapTile"); tile.transform.SetParent(MapRoot); tile.X = x; tile.Y = y; tile.transform.Find("Material").GetComponent <SpriteRenderer>().sortingOrder = y + 2; tile.gameObject.SetActive(true); Tiles[x, y] = tile; MapTilesList.Add(tile); }); IsMapCreated = true; } else { Debug.Log("Map is already created!"); } }
public SeedUmbracoNode(Guid seedId, FC.DAL.UmbracoModel.UmbracoModel context) : base(seedId, context, "umbracoNode") { try { if (context.SeedVersion.Find(seedId) == null) { List<UmbracoModel.umbracoNode> input = new List<UmbracoModel.umbracoNode>(); List<MSModel.umbracoNode> output = new List<MSModel.umbracoNode>(); output = MSMod.umbracoNode.ToList(); foreach (var r in output) { var res = Mapper.Map<UmbracoModel.umbracoNode>(r); input.Add(res); } context.umbracoNode.AddRange(input); context.SaveChanges(); context.SeedVersion.Add(Version); context.SaveChanges(); } } catch (Exception ex) { _HandleException(ex); } }
protected override void Sync() { BeginSync(); SyncLong(ref Time); SyncString(ref MapName); if (IsWrite) { W.Write(Messages.Count); FC.ForEach(Messages, (i, msg) => { W.Write(msg.Length); W.Write(msg); }); } else { Messages.Clear(); var count = R.ReadInt(); FC.For(count, (i) => { var dataLen = R.ReadInt(); var data = R.ReadBytes(dataLen); Messages.Add(data); }); } EndSync(); }
public override void OnPreparingBattle(Battle bt) { bt.BeforeAttack += (attacker, target, addTars, skill, attackFlags, multi, addMulti) => { if (attacker.Team != Team) { return; } target.GetPosInMap(out int cx, out int cy); FC.ObliqueSquareFor(cx, cy, 1, (x, y) => { if (x >= 0 && y >= 0 && x < bt.Map.Width && y < bt.Map.Height) { var t = bt.Map.GetAt <Warrior>(x, y); if (t != null && t.Team != Team && !t.IsDead) { addTars.Add(t); } } }); addMulti.Add(P0); // 溅射伤害系数 }; }
// 更新血条旁边的技能图标 public void UpdateSkillPicture(Warrior warrior) { var PassiveSkillFrame = PassiveSkill.transform.parent.gameObject; var ActiveSkillFrame = ActiveSkill.transform.parent.gameObject; PassiveSkillFrame.SetActive(false); ActiveSkillFrame.SetActive(false); var AllBuffs = warrior.Buffs; if (warrior.GetDefaultActiveSkill() != null) { ActiveSkill.GetComponent <Image>().sprite = Resources.Load <Sprite>("UI/Skill/" + warrior.GetDefaultActiveSkill().ID) as Sprite; ActiveSkillFrame.SetActive(true); } FC.For(AllBuffs.Length, (i) => { if (AllBuffs[i] is PatternSkill) { ActiveSkill.GetComponent <Image>().sprite = Resources.Load <Sprite>("UI/Skill/" + AllBuffs[i].ID) as Sprite; ActiveSkillFrame.SetActive(true); } else if (AllBuffs[i] is ISkillWithPassiveSkill) { PassiveSkill.GetComponent <Image>().sprite = Resources.Load <Sprite>("UI/Skill/" + AllBuffs[i].ID) as Sprite; PassiveSkillFrame.SetActive(true); } }); }
public async Task <IActionResult> PutFC(long id, FC fC) { if (id != fC.Id) { return(BadRequest()); } _context.Entry(fC).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FCExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public override void DoEdit(bool updateAllFields = false) { if (SelectedRolesIDs == null || SelectedRolesIDs.Count == 0) { FC.Add("Entity.SelectedRolesIDs.DONOTUSECLEAR", "true"); } else { Entity.UserRoles = new List <FrameworkUserRole>(); SelectedRolesIDs.ForEach(x => Entity.UserRoles.Add(new FrameworkUserRole { ID = Guid.NewGuid(), UserId = Entity.ID, RoleId = x })); } if (SelectedGroupIDs == null || SelectedGroupIDs.Count == 0) { FC.Add("Entity.SelectedGroupIDs.DONOTUSECLEAR", "true"); } else { SelectedGroupIDs.ForEach(x => Entity.UserGroups.Add(new FrameworkUserGroup { ID = Guid.NewGuid(), UserId = Entity.ID, GroupId = x })); } base.DoEdit(updateAllFields); }
// 构建新的地块层 public void BuildMapGrids() { JudgeMapStatus(); if (!IsMapCreated) { Map = new BattleMap(10, 6, (x, y) => TileType.None); FC.For2(Map.Width, Map.Height, (x, y) => { var tile = Instantiate(MapTile); tile.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("TestRes/BattleMap/MapTile"); tile.transform.SetParent(MapRoot); tile.X = x; tile.Y = y; var material = tile.transform.Find("Material").GetComponent <SpriteRenderer>(); var respawnPlace = tile.transform.Find("RespawnPlace").GetComponent <SpriteRenderer>(); material.sortingOrder = y + 2; respawnPlace.sortingOrder = y + 3; tile.gameObject.SetActive(true); MapTilesList.Add(tile); // MapData没有new之前就传递是值传递 tile.GetComponent <MapTile>().MapData = new MapData(x, y, TileType.None, material.sortingOrder, respawnPlace.sortingOrder); var mapData = tile.GetComponent <MapTile>().MapData; MapInfo.Add(mapData); }); IsMapCreated = true; isNewMap = true; } else { Debug.Log("Map is already created!"); } }
public void Ins_Click(object sender, EventArgs e) { Ins.Enabled = false; LB.Enabled = false; TB.Text = ""; foreach (var Item in LB.CheckedItems) { TB.Text += "Installing " + Item.ToString() + "\r\n"; if (File.Exists("./Settings/" + Item.ToString() + "/Install.reg")) { TB.Text += "Import Install.reg - " + ConfigInstaller.RegImport(Item.ToString()) + "\r\n"; } if (File.Exists("./Settings/" + Item.ToString() + "/Files.copy")) { string[] FileStr = File.ReadAllLines(@"./Settings/" + Item.ToString() + "/Files.copy"); foreach (string FC in FileStr) { string[] Copy = FC.Split(","); TB.Text += "Copying " + Copy[0] + " to " + Copy[1] + " " + ConfigInstaller.CopyFiles(Copy[0], Copy[1]) + "\r\n"; } } } LB.Enabled = true; Ins.Enabled = true; }
// パネル生成 public GameObject Create(PanelSet set) { Vector3 vector3 = transform.position; vector3.x += GameMap.mapChipSize; GameObject obj = Instantiate(panelPrefab, vector3, Quaternion.identity); MassPanel m = obj.GetComponent <MassPanel>(); m.InitialSetting(set, target, transform); // 爆弾の ObejectBase 情報を代入 for (int i = 0; i < GameManagement.mCNum; i++) { if (GameManagement.manager.c_MassPanel[i] == null) { GameManagement.manager.c_MassPanel[i] = m.SetObejectBase(); break; } } FC.SettingOrderInLayer(obj, GameMap.Order.orderIMass); return(obj); }
public bool RemoveBuff(Buff b) { bool found = false; FC.For(allBuffs.Length, (player) => { var buffs = allBuffs[player]; if (buffs == null) { return; } if (buffs.Contains(b)) { allBuffs[player].Add(b); foreach (var u in Room.GetAllUnitsByPlayer(player)) { b.OffUnit(u); } buffs.Remove(b); found = true; } }, () => !found); return(found); }
public bool DoChange() { var all = FC.Where(x => x.Key.StartsWith("menu_")).ToList(); List <Guid> AllowedMenuIds = all.Where(x => x.Value.ToString() == "1").Select(x => Guid.Parse(x.Key.Replace("menu_", ""))).ToList(); var torem = AllowedMenuIds.Distinct(); var oldIDs = DC.Set <FunctionPrivilege>().Where(x => x.RoleId == Entity.ID).Select(x => x.ID).ToList(); foreach (var oldid in oldIDs) { FunctionPrivilege fp = new FunctionPrivilege { ID = oldid }; DC.Set <FunctionPrivilege>().Attach(fp); DC.DeleteEntity(fp); } foreach (var menuid in AllowedMenuIds) { FunctionPrivilege fp = new FunctionPrivilege(); fp.MenuItemId = menuid; fp.RoleId = Entity.ID; fp.UserId = null; fp.Allowed = true; DC.Set <FunctionPrivilege>().Add(fp); } DC.SaveChanges(); return(true); }
public void CancelConstructing() { if (animator != null) { animator.SetInteger("state", idle); } var root = transform.Find("Root"); if (mu.U.cfg.ReconstructTo != null) { FC.ForEach(mu.U.cfg.ReconstructTo, (i, t) => { var c = root.Find(t); if (c != null) { c.gameObject.SetActive(false); } }); } Destroy(scaffold.gameObject); scaffold = null; scaffoldUID = null; }
public SeedCmsContentVersion(Guid seedId, FC.DAL.UmbracoModel.UmbracoModel context) : base(seedId, context, "cmsContentVersion") { Version = new SeedVersion { SeedVersionID = seedId }; try { if (context.SeedVersion.Find(seedId) == null) { List<UmbracoModel.cmsContentVersion> input = new List<UmbracoModel.cmsContentVersion>(); List<MSModel.cmsContentVersion> output = new List<MSModel.cmsContentVersion>(); output = MSMod.cmsContentVersion.ToList(); foreach (var r in output) { var res = Mapper.Map<UmbracoModel.cmsContentVersion>(r); input.Add(res); } context.cmsContentVersion.AddRange(input); context.SaveChanges(); context.SeedVersion.Add(Version); context.SaveChanges(); } } catch (Exception ex) { _HandleException(ex); } }
public SeedCmsContentType(Guid seedId, FC.DAL.UmbracoModel.UmbracoModel context) : base(seedId, context,"cmsContentType") { try { if (context.SeedVersion.Find(seedId) == null) { List<UmbracoModel.cmsContentType> input = new List<UmbracoModel.cmsContentType>(); List<MSModel.cmsContentType> output = new List<MSModel.cmsContentType>(); output = MSMod.cmsContentType.ToList(); foreach (var r in output) { var res = Mapper.Map<UmbracoModel.cmsContentType>(r); input.Add(res); } context.cmsContentType.AddRange(input); context.SaveChanges(); context.SeedVersion.Add(Version); context.SaveChanges(); } } catch (Exception ex) { Debug.Print(ex.Message); } }
//shape coeff. private void cdf_calc(object sender, EventArgs e) { if (textBox10.Text != "") { //Cal = double.Parse(textBox12.Text); L = double.Parse(textBox10.Text); if (L == 0) { MessageBox.Show(msgbox1); } else { double N; //Siacci(v); //FC = ((Cx * (v * v) * FA)) / (2 * fv); N = (4 * L + 1) / 4; FC = (2 / N) * (Math.Sqrt((4 * N - 1) * N)); label18.Text = FC.ToString("0.000"); textBox2.Text = FC.ToString("0.000"); } } else { MessageBox.Show(msgbox2); } }
public void LoadAll() { if (!File.Exists(SaveFile)) { return; } using (var r = new BinaryReader(new FileStream(SaveFile, FileMode.Open))) { try { var count = r.ReadInt32(); var data = r.ReadBytes((int)r.BaseStream.Length); var buff = new RingBuffer(); buff.Write(data); FC.For(count, (i) => { var replay = buff.Read <BattleReplay>(); replays.Add(replay); }); } catch (Exception) { replays.Clear(); } finally { r.Close(); } } }
// 大砲とパネルの判定 public void DeterminationOfCannonAndPanel() { // すべてのパネルの確認 foreach (ObjectBase panel in c_MassPanel) { if (panel != null) { // パネルの親がアームでないとき if (panel.transform.parent != c_Arm.transform) { // すべての大砲の確認 foreach (ObjectBase cannon in c_Cannon) { // 大砲が使えるとき if (cannon.GetComponent <Cannon>().repairFlag == false) { // 大砲との当たり判定をする if (FC.Collider(cannon.colliderSet, panel.colliderSet)) { MassPanel m = panel.GetComponent <MassPanel>(); m.ChangeableAmmunition(cannon.renderer.sortingOrder - 1, cannon.colliderSet.pos.position); return; } } } } } } }
static private void GlobalChangeState(bool bState) { foreach (Contactor C in Contactors) { if (C.bInitialState != bState) { C.SwitchState(); } } foreach (Cleaner C in Cleaners) { if (C.bInitialState != bState) { C.SwitchState(); } } foreach (FrequencyConverter FC in FCs) { if (FC.bInitialState != bState) { FC.SwitchState(); } } foreach (HVPS H in HVPSes) { if (H.bInitialState != bState) { H.SwitchState(); } } }
public async Task <bool> DoChangeAsync() { var all = FC.Where(x => x.Key.StartsWith("menu_")).ToList(); List <Guid> AllowedMenuIds = all.Where(x => x.Value.ToString() == "1").Select(x => Guid.Parse(x.Key.Replace("menu_", ""))).ToList(); var torem = AllowedMenuIds.Distinct(); var oldIDs = DC.Set <FunctionPrivilege>().Where(x => x.RoleCode == Entity.RoleCode).Select(x => x.ID).ToList(); foreach (var oldid in oldIDs) { FunctionPrivilege fp = new FunctionPrivilege { ID = oldid }; DC.Set <FunctionPrivilege>().Attach(fp); DC.DeleteEntity(fp); } foreach (var menuid in AllowedMenuIds) { FunctionPrivilege fp = new FunctionPrivilege(); fp.MenuItemId = menuid; fp.RoleCode = Entity.RoleCode; fp.Allowed = true; DC.Set <FunctionPrivilege>().Add(fp); } await DC.SaveChangesAsync(); var userids = DC.Set <FrameworkUserRole>().Where(x => x.RoleCode == Entity.RoleCode).Select(x => x.UserCode).ToArray(); await Wtm.RemoveUserCache(userids); return(true); }
// 投放机 static StateMachine Carrier(Unit u) { var sm = new StateMachine(u.UID); var pts = new Vec2[] { Vec2.Zero, Vec2.Left, Vec2.Right, Vec2.Up, Vec2.Down }; var dropped = false; var ended = false; var moveImpl = MakeMove(u, u.MovePath, u.cfg.MaxVelocity); sm.NewState("moving").Run((st, te) => { ended = !moveImpl(te); u.Pos += u.PreferredVelocity; u.Dir = u.PreferredVelocity.Dir(); if (!dropped && u.MovePath.Count < 2) { dropped = true; FC.ForEach(u.UnitCosntructingWaitingList, (i, gu) => { var dropU = u.Room.AddNewUnit(null, gu, u.Pos + pts[i % pts.Length], u.Player); // 中立怪身上放宝箱 if (dropU != null && (gu == "NeutralMonster" || gu == "Blademaster" || gu == "Velkoz")) { dropU.OnDead += () => { string boxType = ""; switch (dropU.UnitType) { case "NeutralMonster": boxType = dropU.Room.TBRunner.RandomTreasureBoxType(1); break; case "Blademaster": boxType = dropU.Room.TBRunner.RandomTreasureBoxType(2); break; case "Velkoz": boxType = dropU.Room.TBRunner.RandomTreasureBoxType(3); break; } dropU.Room.TBRunner.CreateTreasureBox(boxType, dropU.Pos); }; } }); } }).AsDefault(); sm.NewState("dead").OnRunIn((st) => { u.Hp = 0; }).Run(null); // 到目的地就销毁 sm.Trans().From("moving").To("dead").When((st) => ended); return(sm); }
// 針の生成関数 Transform NeedleCreate(GameObject obj, int order, Quaternion angle) { GameObject needle = Instantiate(obj, transform.position, angle); FC.SettingOrderInLayer(needle, order); return(needle.transform); }
public override void DoEdit(bool updateAllFields = false) { if (FC.ContainsKey("Entity.RoleCode")) { FC.Remove("Entity.RoleCode"); } base.DoEdit(updateAllFields); }
public SeedBase(Guid seedID, FC.DAL.UmbracoModel.UmbracoModel ctx, string tableName) { Debug.Print("Running Seed for " + tableName); this.Version = new SeedVersion { SeedVersionID = seedID }; this.context = ctx; this.TableName = tableName; TruncateTbl(); }
/// <summary> /// 创建fieldtype,如CE,XCN等 /// </summary> /// <param name="parent"></param> /// <param name="product"></param> /// <param name="name"></param> /// <returns></returns> public override abstractType Create(compositeType parent, Enum product, string name) { abstractType tmp = null; switch (product) { case enumField.CE: tmp = new CE(parent, name); break; case enumField.CM: tmp = new CM(parent, name); break; case enumField.CWE: tmp = new CWE(parent, name); break; case enumField.CX: tmp = new CX(parent, name); break; case enumField.DLN: tmp = new DLN(parent, name); break; case enumField.EI: tmp = new EI(parent, name); break; case enumField.ELD: tmp = new ELD(parent, name); break; case enumField.FN: tmp = new FN(parent, name); break; case enumField.HD: tmp = new HD(parent, name); break; case enumField.MSG: tmp = new MSG(parent, name); break; case enumField.PT: tmp = new PT(parent, name); break; case enumField.VID: tmp = new VID(parent, name); break; case enumField.XAD: tmp = new XAD(parent, name); break; case enumField.XCN: tmp = new XCN(parent, name); break; case enumField.XPN: tmp = new XPN(parent, name); break; case enumField.XTN: tmp = new XTN(parent, name); break; case enumField.ERL: tmp = new ERL(parent, name); break; case enumField.FC: tmp = new FC(parent, name); break; case enumField.XON: tmp = new XON(parent, name); break; case enumField.PL: tmp = new PL(parent, name); break; case enumField.CP: tmp = new CP(parent, name); break; case enumField.JCC: tmp = new JCC(parent, name); break; case enumField.TQ: tmp = new TQ(parent, name); break; case enumField.CQ: tmp = new CQ(parent, name); break; default: throw new NotSupportedException(); } return(tmp); }
public ServiceResponse<List<UGenre>> Filter(FC.Shared.FormModels.GenreFilter filter) { List<UGenre> result = new List<UGenre>(); if (filter.GenreID.HasValue && filter.ParentID.HasValue) { return new ServiceResponse<List<UGenre>>(null, HttpStatusCode.BadRequest, "FAIL-Genres/GetAll-cannot user filter.GenreID & filter.ParentID at same time."); } else if (filter.GenreID.HasValue) { result.Add(repo.GetByID(filter.GenreID)); return new ServiceResponse<List<UGenre>>(result, HttpStatusCode.OK, "SUCCESS-Genres/Filter/?ID"); } else if (filter.ParentID.HasValue) { result.AddRange(repo.GetByParentID(filter.ParentID)); } else if (filter.Name != null) { try { result.Add(repo.GetByName(filter.Name)); } catch(Exception ex) { return new ServiceResponse<List<UGenre>>(null, HttpStatusCode.Conflict, "FAIL-"+ex.Message); } } return new ServiceResponse<List<UGenre>>(result, HttpStatusCode.OK, "SUCCESS-Genres/GetAll"); }
// синхронизация родительских бланков int syncParentDT(xobj.Iblank blank, FC.FeatureType dt) { var rc =0; var parents = dt.InheritsFrom; if (parents != null) foreach (var parent in parents) { FC.FeatureType up=parent.Supertype; if (up != null) { string s=up.Code; if (convert.IsString(s)) if (syncDT(up) > 0) { int rc1; if (!up.IsDataType()) s="$"+s; blank.attr("$inherited","",s,0,out rc1); if (rc1 < 0) __err(); else rc++; } } } return rc; }
public void syncFC(FC.FeatureCatalogue catalog, int mode) { if (catalog !=null) if (fidx == null) __log("fidx == null"); else { __log("Синхронизация: "+Path.GetFileName(fobjPath)); __log(""); fobjCount=0; fobjUpdCount=0; fobjNewCount=0; fdtList.Clear(); fdtList0.Clear(); fdtUpdCount=0; fdtNewCount=0; fdtCount=0; fattrList.Clear(); fattrUpdCount=0; fattrNewCount=0; fenumCount=0; fenumUpdCount=0; fenumNewCount=0; froleCount=0; froleUpdCount=0; froleNewCount=0; ferrCount=0; if ((mode & 1) != 0) syncAllAttr(catalog); if ((mode & 2) != 0) syncAllDT(catalog); syncFE(catalog,1); syncFE(catalog,2); if (fobj.EditFlag > 0) fobj.SaveAs(""); if (fattrList.Count > 0) { log_int("атрибуты",fattrList.Count); if (fattrUpdCount > 0) log_int("\tизменено",fattrUpdCount); if (fattrNewCount > 0) log_int("\tдобавлено",fattrNewCount); } if (fenumCount > 0) { log_int("Домены",fenumCount); if (fenumUpdCount > 0) log_int("\tизменено",fenumUpdCount); if (fenumNewCount > 0) log_int("\tдобавлено",fenumNewCount); } if (fdtCount > 0) { log_int("бланки",fdtCount); if (fdtUpdCount > 0) log_int("\tизменено",fdtUpdCount); if (fdtNewCount > 0) log_int("\tдобавлено",fdtNewCount); } if (fobjCount > 0) { log_int("объекты",fobjCount); if (fobjUpdCount > 0) log_int("\tизменено",fobjUpdCount); if (fobjNewCount > 0) log_int("\tдобавлено",fobjNewCount); } if (froleCount > 0) { log_int("связи",froleCount); if (froleUpdCount > 0) log_int("\tизменено",froleUpdCount); if (froleNewCount > 0) log_int("\tдобавлено",froleNewCount); } if (ferrCount > 0) { __log(""); log_int("\tошибки",ferrCount); } } }
bool addRole(xobj.Iroles roles, FC.FeatureType owner, FC.AssociationRole role, FC.FeatureType dest, string Nset) { FC.AssociationRole.RoleType typ=role.Type; string key=role.Code; string name=role.MemberName; string hf=""; string tp=""; var es = owner.ConstrainedBy.GetConstraint( typeof(AssociationRoleConstraint) ) as FC.AssociationRoleConstraint; if (es != null) { foreach(var e in es.ValidationRules) if (e.AssociationRoleName == name) { hf=e.ОграничениеПоСемантике; break; } foreach(var e in es.TopologicRules) if (e.AssociationRoleName == name) { string t=GeomToInt(e.SourceGeom)+","+ GeomToInt(e.TargetGeom)+","+ e.ОграничениеПоТопологии; if (tp.Length > 0) tp+="/"; tp+=t; } } string s=""; if (key != null) s=key; if (name.Length > 0) { if (s.Length > 0) s+="/"; s+=name; } int rc; roles.role(s,((int) typ)-1,dest.Code,Nset,hf,tp,out rc); if (rc < 0) { __err(); return false; } return true; }
public List<UFestival> GetFilteredFestival(FC.Shared.FormModels.FestivalFilter filter) { List<UFestival> result = new List<UFestival>(); List<UFestival> tmpList = new List<UFestival>(); if(filter.CountryIDs == null) { filter.CountryIDs = new List<Guid?>(); } if(filter.GenreIDs == null) { filter.GenreIDs = new List<Guid?>(); } if(filter.GenreIDs.Count() > 0 && filter.CountryIDs.Count() == 0) { result = Db.Festivals.Where(w => w.StartDate.Month == filter.MonthNum && w.StartDate.Year == filter.YearNum).ToList(); foreach (UFestival f in result) { UFestival tmp = new UFestival(f); tmp.Genres = Db.G2F.Where(w => w.FestivalID == f.FestivalID).Select(s => s.Genre).ToList(); if (tmp.Genres.Select(s => s).Where(w => filter.GenreIDs.Contains(w.GenreID)).Any()) { tmpList.Add(tmp); } } } else if (filter.GenreIDs.Count() > 0 && filter.CountryIDs.Count() > 0) { result = Db.Festivals.Where(w => w.StartDate.Month == filter.MonthNum && w.StartDate.Year == filter.YearNum && filter.CountryIDs.Contains(w.CountryID)).ToList(); foreach (UFestival f in result) { UFestival tmp = new UFestival(f); tmp.Genres = Db.G2F.Where(w => w.FestivalID == f.FestivalID).Select(s => s.Genre).ToList(); if (tmp.Genres.Select(s => s).Where(w => filter.GenreIDs.Contains(w.GenreID)).Any()) { tmpList.Add(tmp); } } } else if (filter.GenreIDs.Count() == 0 && filter.CountryIDs.Count() > 0) { result = Db.Festivals.Where(w => w.StartDate.Month == filter.MonthNum && w.StartDate.Year == filter.YearNum && filter.CountryIDs.Contains(w.CountryID)).ToList(); foreach (UFestival f in result) { UFestival tmp = new UFestival(f); tmp.Genres = Db.G2F.Where(w => w.FestivalID == f.FestivalID).Select(s => s.Genre).ToList(); tmpList.Add(tmp); } } else if (filter.GenreIDs.Count() == 0 && filter.CountryIDs.Count() == 0) { if (filter.MonthNum == 0 || filter.YearNum == 0) { throw new Exception("Invalid year or month specified"); } else { result = Db.Festivals.Where(w => w.StartDate.Month == filter.MonthNum && w.StartDate.Year == filter.YearNum).ToList(); foreach (UFestival f in result) { UFestival tmp = new UFestival(f); tmp.Genres = Db.G2F.Where(w => w.FestivalID == f.FestivalID).Select(s => s.Genre).ToList(); tmpList.Add(tmp); } } } else { throw new Exception("Cannot filter festivals because none of the filter parameters was specified."); } return tmpList.OrderBy(o => o.OrderDate).ToList(); }
// добавить связи объекта int addRoles(FC.FeatureType owner, FC.FeatureType obj, xobj.Iroles roles) { int count=0; foreach (var binding in obj.Bindings) { var role = binding.PropertyType as FC.AssociationRole; if (role != null) if (role.IsNavigable) { FC.FeatureType dest = role.ValueType; if (dest != null) { string Nset=binding.Cardinality; var childs = dest.InheritsTo; if (childs != null) if (childs.Count == 0) childs=null; if (childs == null) { bool rc=addRole(roles,owner,role,dest,Nset); if (rc) count++; } else { foreach(var child in childs) { FC.FeatureType dest1=child.Subtype; bool rc=addRole(roles,owner,role,dest1,Nset); if (rc) count++; } } } } } return count; }
// цикл по всем атрибутам -- не используется void syncAllAttr(FC.FeatureCatalogue catalog) { var attrs = catalog.GetAttributes(); if (attrs == null) __log("FC.FeatureCatalogue.GetAttributes == null"); else { __log("атрибуты..."); Application.DoEvents(); foreach(var attr in attrs) { string key=attr.Code; if (convert.IsString(key)) if (!fattrList.Contains(key)) { fattrList.Add(key); string typ=attr.ValueType; string capt=attr.ToString(); int rc; fidx.sync(key,typ,capt,out rc); if (rc == 1) fattrUpdCount++; else if (rc == 2) fattrNewCount++; else if (rc != 0) __err(); } Application.DoEvents(); } __log("^"); } }
// синхронизация всех datatype's -- не используется void syncAllDT(FC.FeatureCatalogue catalog) { __log("бланки..."); foreach(var dt in catalog.FeatureTypes) { if (dt.IsDataType()) syncDT(dt); Application.DoEvents(); } __log("^"); }
// синхронизация атрибута bool syncAttr(xobj.Iblank blank, FC.Binding binding) { var attr = binding.PropertyType as FC.FeatureAttribute; if (attr != null) { string key=attr.Code; // акроним if (convert.IsString(key)) { int rc; string typ=attr.ValueType; FC.FeatureType dt=null; string dt1=""; if (typ == "Класс") { dt=binding.GetDataType(); if (dt != null) dt1=dt.Code; } string Nset=binding.Cardinality; int flags=0; if (!binding.Voidable) flags+=1; if (typ == "Домен") { var vt = binding.ConstrainedBy.GetConstraint( typeof(ValueTypeConstraint) ) as FC.ValueTypeConstraint.DomainValueType; if (vt != null) if (vt.IsMultiValue) flags+=8; } else if (typ == "Дробное интервальное") flags+=8; if (!fattrList.Contains(key)) { fattrList.Add(key); if (dt != null) syncDT(dt); if (typ == "Домен") { rc=syncEnum(attr); if (rc == 0) typ="dbase"; } string capt=attr.ToString(); fidx.sync(key,typ,capt,out rc); if (rc == 1) fattrUpdCount++; else if (rc == 2) fattrNewCount++; else if (rc != 0) __err(); } blank.attr(key,Nset,dt1,flags,out rc); if (rc < 0) __err(); return true; } } return false; }
// синхронизация бланка int syncDT(FC.FeatureType dt) { int rc=0; string key=dt.Code; if (convert.IsString(key)) if (fdtList.Contains(key)) { rc=1; if (fdtList0.Contains(key)) rc=0; } else if (!fdtList.Contains(key)) { fdtList.Add(key); var blank = fobj.GetBlank; if (blank == null) __err(); else { string t=key; if (dt.IsDataType()) t+="/"+dt.TypeName; blank.beginUpdate(t); rc=syncParentDT(blank,dt); foreach (var binding in dt.Bindings) if (syncAttr(blank,binding)) rc++; if (rc > 0) { var es = dt.ConstrainedBy.GetConstraint( typeof(AttributeValueConstraint) ) as AttributeValueConstraint; int rc1; if (es != null) foreach(var e in es.ValidationRules) { blank.logic(e.ОграничениеПоСемантике, e.Комментарий,out rc1); if (rc1 < 0) __err(); } if (dt.IsDataType()) blank.endUpdate(key,"",out rc1); else blank.endUpdate("",key,out rc1); if (rc1 == 1) fdtUpdCount++; else if (rc1 == 2) fdtNewCount++; else if (rc1 != 0) __err(); if (rc1 >= 0) fdtCount++; } } if (rc == 0) fdtList0.Add(key); } return rc; }
/** * Returns all repetitions of Financial Class (PV1-20). */ public FC[] getFinancialClass() { FC[] ret = null; try { Type[] t = this.getField(20); ret = new FC[t.Length]; for (int i = 0; i < ret.Length; i++) { ret[i] = (FC)t[i]; } } catch (HL7Exception he) { HapiLogFactory.getHapiLog(this.GetType()).error("Unexpected problem obtaining field value. This is a bug.", he); throw new System.Exception("An unexpected error ocurred", he); } catch (System.Exception cce) { HapiLogFactory.getHapiLog(GetType()).error("Unexpected problem obtaining field value. This is a bug.", cce); throw new System.Exception("An unexpected error ocurred", cce); } return ret; }
// синхронизация связей объекта void syncRoles(FC.FeatureType obj, xobj.Iroles roles) { roles.beginUpdate(); int count=syncParentRoles(obj,roles); count+= addRoles(obj,obj,roles); int rc; roles.endUpdate(obj.Code,out rc); if (rc < 0) __err(); else { if (count > 0) froleCount++; if (rc == 1) froleUpdCount++; else if (rc == 2) froleNewCount++; } }
// синхронизация домена int syncEnum(FC.FeatureAttribute attr) { int enumw=0; if (fenum != null) { // получить домен IList<FC.ListedValue> values = attr.GetListedValuesList(); if (values != null) { fenum.beginUpdate(); // цикл по записям домена foreach(var v in values) { string s=v.Code; int i; if (!Int32.TryParse(s,out i)) enumw=1; fenum.addItem(s,v.Label,v.Definition); } int rc; fenum.endUpdate(attr.Code,out rc); fenumCount++; if (rc == 1) fenumUpdCount++; else if (rc == 2) fenumNewCount++; else if (rc < 0) __err(); } } return enumw; }
// синхронизация родительских связей int syncParentRoles(FC.FeatureType obj, xobj.Iroles roles) { var count=0; var parents = obj.InheritsFrom; if (parents != null) foreach (var parent in parents) { FC.FeatureType up=parent.Supertype; if (up != null) { count += syncParentRoles(up, roles); count += addRoles(obj,up,roles); } } return count; }
public SFS() { SD = new SD(); AC = new AC(); FC = new FC(); }
// синхронизация объектов void syncFE(FC.FeatureCatalogue catalog, int mode) { if ((mode & 1) != 0) __log("объекты..."); else __log("связи..."); __progress(0,catalog.FeatureTypes.Count); var roles = fobj.GetRoles; IList<FC.FeatureType> ftlist=catalog.GetFeatureTypesInHierarchicalOrder(); if (ftlist != null) foreach(var ft in ftlist) { if (!ft.IsDataType()) { string key=ft.Code; if (convert.IsString(key)) { if ((mode & 1) != 0) { int loc=0; var c = ft.ConstrainedBy.GetConstraint(typeof(GeometryConstraint)) as GeometryConstraint; if (c != null) { if (c.Pt) loc+=1; if (c.Ln) loc+=2; if (c.Pl) loc+=4; } string capt=ft.TypeName; int rc; fobj.sync(key,loc,capt,out rc); if (rc == 1) fobjUpdCount++; else if (rc == 2) fobjNewCount++; else if (rc != 0) __err(); fobjCount++; syncDT(ft); } if ((mode & 2) != 0) { if (roles != null) syncRoles(ft,roles); } } } Application.DoEvents(); __progress(-1,0); } __log("^"); }