예제 #1
0
 public EveTypeManager(EveTypeDetails details, EveTypeList list, ModelLayer model)
 {
     _list = list;
     _list.EveTypeSelected += eveTypeDataGridView_CellContentClick;
     _details = details;
     _model = model;
 }
예제 #2
0
    protected void btn_Click(object sender, EventArgs e)
    {
        string id          = ((Control)sender).ID;
        int    question_id = 0;

        switch (id)
        {
        case "btn_check":
            int exist_indicator = BusinessLayer.Check_Username_Existence(txt_forgot_password.Text);

            if (exist_indicator == 0)
            {
                question_id          = LoadQuestions(txt_forgot_password.Text);
                pnl_email.Visible    = false;
                pnl_question.Visible = true;
                pnl_confirm.Visible  = false;
            }
            else
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("<p class='error bold'>Your account does not exist. Please check email address again.</p>");
                lit_error.Text = sb.ToString();
            }
            break;

        case "btn_submit":
            tblQuestion       q = ModelLayer.GetQuestion(question_id);
            tblQuestionAnswer a = ModelLayer.GetQuestionAnswer(q.iQuestionAnswer);

            if (a.vQuestionAnswer == txt_question_answer.Text)
            {
                string result = SendEmail(txt_forgot_password.Text);

                if (result == "Success")
                {
                    pnl_email.Visible    = false;
                    pnl_question.Visible = false;
                    pnl_confirm.Visible  = true;
                }
                else
                {
                    Common.ErrorLog(@"c:\logs\debug.txt", result);
                }
            }
            else
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("<p class='error bold'>Your security question answer does not match with our records. Please check your answer again.</p>");
                lit_error.Text = sb.ToString();
            }
            break;

        case "btn_confirm":
            Response.RedirectToRoute("Login");
            break;

        default:
            break;
        }
    }
예제 #3
0
 public EveTypeManager(EveTypeDetails details, EveTypeList list, ModelLayer model)
 {
     _list = list;
     _list.EveTypeSelected += eveTypeDataGridView_CellContentClick;
     _details = details;
     _model   = model;
 }
예제 #4
0
    private void ClickChangeLayerState(ModelLayer layer)
    {
        if (!instanceLoaded)
        {
            Debug.Log("No model loaded, cannot show layer.");
            return;
        }

        bool addLayer = !layersLoaded.ContainsKey(layer);

        if (!addLayer)
        {
            UnloadLayer(layer);
        }
        else
        {
            if (layer.DataType == DataType.Volumetric)
            {
                List <ModelLayer> layersToUnload = new List <ModelLayer>();
                foreach (KeyValuePair <ModelLayer, LayerLoaded> entry in layersLoaded)
                {
                    layersToUnload.Add(entry.Key);
                }

                foreach (ModelLayer l in layersToUnload)
                {
                    UnloadLayer(l);
                    HoloUtilities.SetButtonStateText(layersButtons[l], false);
                }
            }
            LoadLayer(layer);
        }
        HoloUtilities.SetButtonStateText(layersButtons[layer], addLayer);
    }
예제 #5
0
 public MainForm()
 {
     InitializeComponent();
     model          = new ModelLayer();
     eveTypeManager = new EveTypeManager(eveTypeDetails, eveTypeList, model);
     eveTypeManager.Update();
 }
예제 #6
0
    /* Instantiate new animated layer from currently loaded model.
     * If the layer is already instantiated, does nothing
     * (for now it makes a warning, but we can disable the warning if it's useful).
     *
     * This can only be used after LoadInstance (and before corresponding UnloadInstance).
     *
     * After calling this, remember to call RefreshUserInterface at some point.
     */
    private void LoadLayer(ModelLayer layer)
    {
        if (!instanceLoaded)
        {
            throw new Exception("Cannot call LoadLayer before LoadInstance");
        }
        if (layersLoaded.ContainsKey(layer))
        {
            Debug.LogWarning("Layer already loaded");
            return;
        }

        LayerLoaded l = new LayerLoaded();

        l.Instance = layer.InstantiateGameObject(instanceTransformation.transform);

        l.Animation = l.Instance.GetComponent <BlendShapeAnimation>();
        if (l.Animation != null)
        {
            l.Animation.InitializeBlendShapes();
            l.Animation.Playing         = AnimationPlaying;
            l.Animation.CurrentTime     = AnimationTime;
            l.Animation.SpeedNormalized = AnimationSpeed;
        }

        // Assign material to all MeshRenderer and SkinnedMeshRenderer inside
        foreach (var renderer in l.Instance.GetComponentsInChildren <Renderer>())
        {
            renderer.sharedMaterial = LayerMaterial(layer);
        }

        // update layersLoaded dictionary
        layersLoaded[layer] = l;
    }
예제 #7
0
        // Descendants must use this on all GameObjects representing layers
        protected void AddLayerComponent(GameObject go, ModelLayerInfo layerInfo)
        {
            ModelLayer layer = go.AddComponent <ModelLayer>();

            layer.Caption    = layerInfo.Caption;
            layer.Simulation = CheckIfSimulation(layerInfo.DataType);
            layer.DataType   = GetDataType(layerInfo.DataType);
        }
예제 #8
0
    /* Handle a click on some button inside. Called by ButtonsClickReceiver. */
    public void Click(GameObject clickObject)
    {
        if (SharingSceneData.Singleton.isClient &&
            !SharingSceneData.Singleton.isServer)
        {
            return;
        }

        switch (clickObject.name)
        {
        case "TogglePlay": ClickTogglePlay(); break;

        case "Rewind": ClickRewind(); break;

        case "Remove": ClickRemove(); break;

        case "Speed": ClickSpeed(); break;

        case "ConfirmPreview": ClickConfirmPreview(); break;

        case "CancelPreview": ClickCancelPreview(); break;

        case "ButtonTranslate": ClickChangeTransformationState(TransformationState.Translate); break;

        case "ButtonRotate": ClickChangeTransformationState(TransformationState.Rotate); break;

        case "ButtonScale": ClickChangeTransformationState(TransformationState.Scale); break;

        case "ButtonLayers": ClickToggleLayersState(); break;

        case "ButtonAnimationSpeed": AnimationSubmenu.SetActive(!AnimationSubmenu.activeSelf); break;

        case "ButtonTransparency": ClickTransparency(); break;

        case "ButtonPlateTransform": ClickPlateTransform(); break;

        default:
        {
            ModelLayer layer = ButtonOfLayer(clickObject);
            if (layer != null)
            {
                ClickChangeLayerState(layer);
            }
            else
            {
                const string addPrefix = "Add";
                int          addInstanceIndex;
                if (clickObject.name.StartsWith(addPrefix) &&
                    int.TryParse(clickObject.name.Substring(addPrefix.Length), out addInstanceIndex))
                {
                    ClickAdd(ModelsCollection.Singleton.BundleName(addInstanceIndex));
                }
            }
            break;
        }
        }
    }
예제 #9
0
 private void UnloadLayer(ModelLayer layer)
 {
     if (!layersLoaded.ContainsKey(layer))
     {
         Debug.LogWarning("Cannot unload layer " + layer.Caption + ", it is not loaded yet");
         return;
     }
     Destroy(layersLoaded[layer].Instance);
     layersLoaded.Remove(layer);
 }
예제 #10
0
    public static DateTime?Return_Last_Login(int account_id)
    {
        DateTime?last_login = null;

        tblAccount a = ModelLayer.GetAccount(account_id);

        last_login = a.dLastUpdated;

        return(last_login);
    }
예제 #11
0
    public static string Return_Full_Name(int profile_id)
    {
        string full_name = string.Empty;

        tblProfile p = ModelLayer.GetProfile(profile_id);

        full_name = p.vLastname + ", " + p.vFirstname;

        return(full_name);
    }
예제 #12
0
    public static int Login(string username, string password)
    {
        int        accound_id = 0;
        tblAccount a          = ModelLayer.GetAccount(username, password);

        if (a != null)
        {
            accound_id = a.iAccount;
        }
        return(accound_id);
    }
예제 #13
0
    private void Load_FieldSet(int account_id)
    {
        tblAccount a          = ModelLayer.GetAccount(account_id);
        int        profile_id = a.iProfile;

        label_full_name.Text = BusinessLayer.Return_Full_Name(profile_id);

        StringBuilder sb = new StringBuilder();

        sb.Append("<span class='f_1 bold white italic'>Last Login: "******"</span>");
        lit_login_msg.Text = sb.ToString();
    }
예제 #14
0
    private void LoadInitialLayers()
    {
        if (!instanceLoaded)
        {
            throw new Exception("Cannot call TodoLoadMeshLayer before LoadInstance");
        }

        Assert.IsTrue(instanceBundle != null);
        ModelLayer layer = instanceBundle.Layers.First <ModelLayer>(l => !l.Simulation);

        LoadLayer(layer);
        HoloUtilities.SetButtonStateText(layersButtons[layer], true);
    }
예제 #15
0
    private void LoadDDL()
    {
        List <tblAccountType> account_types = ModelLayer.GetAccountTypes();

        ListItem item = new ListItem("Please Select.", "0");

        ddl_account_type.Items.Insert(0, item);

        foreach (tblAccountType account_type in account_types)
        {
            ddl_account_type.Items.Add(new ListItem(account_type.vAccountType, account_type.iAccountType.ToString()));
        }
    }
예제 #16
0
    private void UnloadLayer(ModelLayer layer)
    {
        if (!layersLoaded.ContainsKey(layer))
        {
            Debug.LogWarning("Cannot unload layer " + layer.Caption + ", it is not loaded yet");
            return;
        }
        foreach (var renderer in layersLoaded[layer].Instance.GetComponentsInChildren <Renderer>())
        {
            renderer.sharedMaterial = LayerMaterial(layer);
            ModelClipPlane.GetComponent <ClippingPlane>().RemoveRenderer(renderer);
        }

        Destroy(layersLoaded[layer].Instance);
        layersLoaded.Remove(layer);
    }
예제 #17
0
    public static int Check_Username_Existence(string username)
    {
        List <tblAccount> accounts = ModelLayer.GetAccounts(username);

        if (accounts != null && accounts.Count == 1)
        {
            return(0);
        }
        else if (accounts != null && accounts.Count > 1)
        {
            return(1);
        }
        else
        {
            return(2);
        }
    }
예제 #18
0
    public static tblQuestion Forgot_Password_Questions()
    {
        tblQuestion q = new tblQuestion();
        int         question_set_type = 0;

        List <int>         q_ids     = new List <int>();
        tblQuestionSet     qs        = ModelLayer.GetQuestionSet(0, question_set_type);
        List <tblQuestion> questions = ModelLayer.GetQuestions(qs.iQuestionSet);

        foreach (tblQuestion question in questions)
        {
            q_ids.Add(question.iQuestion);
        }

        Random ranNum      = new Random();
        int    question_id = q_ids[ranNum.Next(q_ids.Count)];

        q = ModelLayer.GetQuestion(question_id);

        return(q);
    }
예제 #19
0
 /* Based on layer properties, and current properties like Transparent,
  * determine proper material of the layer.
  */
 private Material LayerMaterial(ModelLayer layer)
 {
     Debug.Log("Getting LayerMaterial for layer: " + layer.name);
     if (layer.DataType == DataType.Volumetric)
     {
         return(DefaultVolumetricMaterial);
     }
     else
     if (layer.Simulation)
     {
         return(DataVisualizationMaterial);
     }
     else
     if (Transparent)
     {
         return(DefaultModelTransparentMaterial);
     }
     else
     {
         return(DefaultModelMaterial);
     }
 }
예제 #20
0
    private void LoadProfile(int iAccount)
    {
        if (iAccount != 0)
        {
            tblAccount     a  = ModelLayer.GetAccount(iAccount);
            tblProfile     p  = ModelLayer.GetProfile(a.iProfile);
            tblAccountType at = ModelLayer.GetAccountType(a.iAccountType);

            label_name.Text         = p.vLastname + ", " + p.vFirstname;
            label_country.Text      = p.vCountry;
            label_account_type.Text = at.vAccountType;
            label_age.Text          = p.vAge;
            label_sex.Text          = p.vSex;
        }
        else
        {
            label_name.Text         = "Admin";
            label_country.Text      = "Admin";
            label_account_type.Text = "Admin";
            label_age.Text          = "Admin";
            label_sex.Text          = "Admin";
        }
    }
예제 #21
0
        internal static async ValueTask <ulong> GenModelIdAsync(uint appId, ModelType type, ModelLayer layer)
        {
            if (layer == ModelLayer.SYS) //不允许SYS Layer
            {
                throw new ArgumentException(nameof(layer));
            }

            var seq = await HostApi.MetaGenModelIdAsync(appId, layer == ModelLayer.DEV);

            var nid = (ulong)appId << IdUtil.MODELID_APPID_OFFSET;

            nid |= (ulong)type << IdUtil.MODELID_TYPE_OFFSET;
            nid |= (ulong)seq << IdUtil.MODELID_SEQ_OFFSET;
            nid |= (ulong)layer;
            return(nid);
        }
        public override PaymentMessage PeymentCore(ModelLayer.BankRequest bankRequest)
        {
            PaymentMessage mesaj = new PaymentMessage();

            C_Posnet posnetObj = new C_Posnet();
            posnetObj.SetMid(bankaApi.ClientId);
            posnetObj.SetTid(bankaApi.ApiName);
            posnetObj.SetURL(bankaApi.HostName);

            // Yapı Kredi Bilgi Formatı
            string tarihYil = bankRequest.KrediKart.Yil.Substring(2) + bankRequest.KrediKart.Ay;

            // Yapı Kredi Toplam Fiyat İşlemi
            string ykbtaksitToplam = bankRequest.TaksitToplam.ToString("c");
            ykbtaksitToplam = ykbtaksitToplam.Replace("TL", "");
            ykbtaksitToplam = ykbtaksitToplam.Replace(",", "");
            ykbtaksitToplam = ykbtaksitToplam.Replace(".", "");

            string taksit = null;
            if (bankRequest.Taksit.ToString() == "01")
            {
                taksit = "00";
            }
            else
            {
                taksit = bankRequest.Taksit.ToString();
            }

            bankRequest.KrediKart.AdSoyad = string.Format("{0}-", BusinessLayer.UrlTR.Replace(bankRequest.KrediKart.AdSoyad));

            //Ad Soyad için kalan alan
            int nNameLastIndex = (23 - bankRequest.SiparisNo.Length);

            for (int i = bankRequest.KrediKart.AdSoyad.Length; i < nNameLastIndex; i++)
            {
                bankRequest.KrediKart.AdSoyad += "0"; 
            }

            if (bankRequest.KrediKart.AdSoyad.Length > nNameLastIndex)
            {
                bankRequest.KrediKart.AdSoyad = bankRequest.KrediKart.AdSoyad.Substring(0, nNameLastIndex);
            }

            bankRequest.SiparisNo = string.Format("{0}-{1}", bankRequest.KrediKart.AdSoyad, bankRequest.SiparisNo);

            Boolean baglanti = posnetObj.DoSaleTran(bankRequest.KrediKart.No, tarihYil, bankRequest.KrediKart.CV2, bankRequest.SiparisNo, ykbtaksitToplam, "YT", taksit, "", "");

            if (baglanti == false)
            {
                mesaj.RedMesaj = "Banka ile Bağlantı Kurulamadı, Lütfen tekrar deneyiniz.";
                mesaj.RedMesajKodu = "yapikerediBaglanti";
            }
            if (posnetObj.GetApprovedCode() == "1")
            {
                if (posnetObj.GetAuthcode().ToString().Trim() != "" && posnetObj.GetHostlogkey().ToString().Trim() != "")
                {
                    mesaj.Success = true;
                    mesaj.OnayKodu = posnetObj.GetAuthcode();
                    mesaj.ReferansNo = posnetObj.GetHostlogkey();
                }
            }
            else if (posnetObj.GetApprovedCode() == "2")
            {
                mesaj.RedMesaj = "Kredi kartı ile ödeme  işlemini daha önce yapıldı. <br/> Resptext: " + posnetObj.GetResponseText();
                mesaj.RedMesajKodu = posnetObj.GetResponseCode();
            }
            else
            {
                #region Yapı Kredi Hata Mesajları
                string hataKodu = posnetObj.GetResponseCode();
                string hataMesaji = posnetObj.GetResponseText();
                mesaj.RedMesajKodu = posnetObj.GetResponseCode();

                if (hataKodu.Trim() == "0095")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + posnetObj.GetResponseText() + "<br/>* Kart bilgilerinden ( KK No, SKT, CVV) biri yada birkaçı hatalı girilmiş veya Worldcard'lar için bankaca tanımlanmış günlük limitler aşılmış olabilir.";
                }
                else if (hataKodu.Trim() == "150")
                {
                    mesaj.RedMesaj = "* Yanlış CVC no hatası.";
                }
                else if (hataKodu.Trim() == "0213")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kartın bakiyesi yetersiz. Kartı veren bankayı arayın.";
                }
                else if (hataKodu.Trim() == "0220")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Taksitli işlemler ancak 1 YTL'nin üstündeki tutarlarla yapılabilirler.";
                }
                else if (hataKodu.Trim() == "0225")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kart no hatalı";
                }
                else if (hataKodu.Trim() == "0400")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Posnet sunucu teknik bir sorun yaşıyor. Lütfen tekrar deneyin.";
                }
                else if (hataKodu.Trim() == "0551")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Numara bir kredi kartına ait değil.";
                }
                else if (hataKodu.Trim() == "131")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kart no bilgisi hiçbir boşluk içermeden 4912065000461139 şeklinde gönderilmelidir.";
                }
                else if (hataKodu.Trim() == "139")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kredi kartı güvenlik numarası (CVC) parametre hatalı.";
                }
                else if (hataKodu.Trim() == "0800")
                {
                    mesaj.RedMesaj = "* Resptext: " + hataMesaji + "<br/>* işlemde kullanılan kredi kartının YKB provizyon sisteminde tutulan çalıntı kredi kartı listesinde bulunmasıdır.";
                }
                else if (hataKodu.Trim() == "0876")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kart bilgilerinden ( KK No, SKT, CVV) biri yada birkaçı hatalı girilmiş veya Worldcard'lar için bankaca tanımlanmış günlük limitler aşılmış olabilir.";
                }
                else if (hataKodu.Trim() == "0877")
                {
                    mesaj.RedMesaj = "* CVC no girilmeli";
                }
                else if (hataKodu.Trim() == "0995")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kartı veren  banka ile iletişimde zaman aşımı oldu (bankadan zamanında yanıt alınamadı). Lütfen Tekrar deneyin.";
                }
                else if (hataKodu.Trim() == "0100")
                {
                    mesaj.RedMesaj = "* Resptext: " + hataMesaji + "<br/>* Banka sistemlerimizde anlık sorunlar olduğundan. Lütfen tekrar deneyin.";

                }
                else if (hataKodu.Trim() == "0173")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>*  işlemde kullanılan kredi kartının internetten işlem yapma yetkisi bulunmamaktadır. <br/> Kredi kartını aldığı bankanın kredi kartları servisiyle görüşüp kredi kartını e-ticarette kullanamadığını belirtiniz.";
                }
                else
                {
                    mesaj.RedMesaj =  "* Ödeme İşlemi Yapılırken Bankadan Hata Mesajı Döndü.<br/> Hata Mesajı: " + hataMesaji + "<br/>Hata kodu: " + hataKodu;
                }
                #endregion
            }
            return mesaj;
        }
예제 #23
0
    private void LoadLayers()
    {
        layers = new List <ModelLayer>();
        bounds = null;
        int?newBlendShapesCount = null;

        foreach (string bundleObjectName in assetBundle.GetAllAssetNames())
        {
            if (!bundleObjectName.EndsWith(".prefab"))
            {
                continue;
            }                                                        // ignore other objects

            GameObject layerGameObject = assetBundle.LoadAsset <GameObject>(bundleObjectName);
            string     layerDebugName  = "Prefab '" + bundleObjectName + "' layer '" + layerGameObject.name + "'";

            SkinnedMeshRenderer skinnedMesh = layerGameObject.GetComponent <SkinnedMeshRenderer>();
            if (skinnedMesh != null &&
                skinnedMesh.sharedMesh != null &&
                skinnedMesh.sharedMesh.blendShapeCount != 0)
            {
                // Update bounds
                // Note that we use skinnedMesh.bounds, not skinnedMesh.localBounds, because we want to preserve local rotations
                BoundsAdd(ref bounds, skinnedMesh.bounds);

                // check and update newBlendShapesCount
                if (newBlendShapesCount.HasValue && newBlendShapesCount.Value != skinnedMesh.sharedMesh.blendShapeCount)
                {
                    Debug.LogWarning(layerDebugName + " have different number of blend shapes, " +
                                     newBlendShapesCount.Value.ToString() + " versus " +
                                     skinnedMesh.sharedMesh.blendShapeCount.ToString());
                }
                newBlendShapesCount = skinnedMesh.sharedMesh.blendShapeCount;

                // check BlendShapeAnimation
                BlendShapeAnimation animation = layerGameObject.GetComponent <BlendShapeAnimation>();
                if (animation == null)
                {
                    Debug.LogWarning(layerDebugName + " does not contain BlendShapeAnimation component, adding");
                    animation = layerGameObject.AddComponent <BlendShapeAnimation>();
                }

                // check Animator does not exist (we do not animate using Mecanim)
                Animator animator = layerGameObject.GetComponent <Animator>();
                if (animator != null)
                {
                    Debug.LogWarning(layerDebugName + " contains Animator component, removing");
                    UnityEngine.Object.Destroy(animator);
                }
            }
            else
            {
                // Model not animated using BlendShapeAnimation, search for meshes (skinned or not) inside
                var renderers = layerGameObject.GetComponentsInChildren <Renderer>();
                if (renderers.Length == 0)
                {
                    Debug.LogWarning(layerDebugName + " has nothing visible, ignoring");
                    continue;
                }
                foreach (Renderer renderer in renderers)
                {
                    BoundsAdd(ref bounds, renderer.bounds);
                }
            }

            // check ModelLayer existence
            ModelLayer layer = layerGameObject.GetComponent <ModelLayer>();
            if (layer == null)
            {
                layer            = layerGameObject.AddComponent <ModelLayer>();
                layer.Caption    = Path.GetFileNameWithoutExtension(bundleObjectName);
                layer.Simulation = bundleObjectName.Contains("dataflow") || bundleObjectName.Contains("simulation");
                if (layer.Simulation)
                {
                    int simulationsCount = layers.Count(c => c.Simulation);
                    layer.Caption = "Simulation " + (simulationsCount + 1).ToString();
                }
                Debug.LogWarning(layerDebugName + " does not contain ModelLayer component, guessing layer Caption (" +
                                 layer.Caption + ") and simulation (" +
                                 layer.Simulation.ToString() + ")");
            }

            layer.LayerIndex = layers.Count;

            // add to layers list
            layers.Add(layer);
        }

        if (!bounds.HasValue)
        {
            Debug.LogWarning("Empty model, no layers with something visible");
        }
        else
        {
            Debug.Log("Loaded model with bounds " + bounds.ToString());
        }

        if (!newBlendShapesCount.HasValue)
        {
            Debug.LogWarning("Not animated model, no layers with blend shapes");
            blendShapeCount = 0;
        }
        else
        {
            blendShapeCount = newBlendShapesCount.Value;
            Debug.Log("Loaded model with blend shapes " + blendShapeCount.ToString());
        }
    }
예제 #24
0
    /* Handle a click on some button inside. Called by ButtonsClickReceiver. */
    public void Click(GameObject clickObject)
    {
        if (SharingSceneData.Singleton.isClient && !SharingSceneData.Singleton.isServer)
        {
            return;
        }
        Debug.Log("ModelWithPlate Click: " + clickObject.name);

        switch (clickObject.name)
        {
        case "TogglePlay": ClickTogglePlay(); break;

        case "Rewind": ClickRewind(); break;

        case "Remove": ClickRemove(); break;

        case "Speed": ClickSpeed(); break;

        case "ConfirmPreview": ClickConfirmPreview(); break;

        case "CancelPreview": ClickCancelPreview(); break;

        case "ButtonLayers": ClickToggleLayersState(clickObject.GetComponent <PressableButtonHoloLens2>()); break;

        case "ButtonTransform": ClickTransform(); break;

        case "ButtonTranslate": ChangeTransformationState(TransformationState.Translate); break;

        case "ButtonRotate": ChangeTransformationState(TransformationState.Rotate); break;

        case "ButtonScale": ChangeTransformationState(TransformationState.Scale); break;

        case "ButtonClipping": ClickClipping(); break;

        case "ButtonAnimationSpeed": ClickAnimationSpeed(); break;

        case "ButtonTransparency": ClickTransparency(); break;

        case "ButtonPlateRotation": ClickPlateRotation(); break;


        default:
        {
            ModelLayer layer = ButtonOfLayer(clickObject);
            if (layer != null)
            {
                ClickChangeLayerState(layer);
            }
            else
            {
                const string addPrefix = "Add";
                int          addInstanceIndex;
                if (clickObject.name.StartsWith(addPrefix) && !PlateRotation &&
                    int.TryParse(clickObject.name.Substring(addPrefix.Length), out addInstanceIndex))
                {
                    ClickAdd(ModelsCollection.Singleton.BundleName(addInstanceIndex));
                    CloseSubmenus();
                }
            }
            break;
        }
        }
    }
    // Update is called once per frame
    void Update()
    {
        ///////////////////  Load Player
        if (recvMsg.Count <= peopleNum && flag == false)
        {
            recvMsg = LoadController.LoadCharacter();
            for (int i = 0; i < recvMsg.Count; i++)
            {
                //Debug.Log(recvMsg[i].Username);
                if (GameObject.Find(recvMsg[i].Username) == null)
                {
                    //Debug.Log(recvMsg[i].Username);
                    ModelLayer.CreateCharacter(recvMsg[i]);
                    ViewLayer.CreateCharacter(recvMsg[i], playerObject);
                }
            }
        }
        //Debug.Log(recvMsg.Count + "   " + flag);
        if (recvMsg.Count == peopleNum && flag == false)
        {
            for (int i = 0; i < peopleNum; i++)
            {
                Debug.Log("index = " + i + ", name = " + ModelLayer.PlayerName[i] + ", id = " + ModelLayer.PlayerMap[ModelLayer.PlayerName[i]]);
            }
            startTime = Time.time + 3f;
            flag      = true;
        }

        ///////////////////  Player Operation
        if (flag == true && Time.time >= startTime)
        {
            ModelLayer.RefreshMessage(username);
            ModelLayer.MovePosition(username);
            //Debug.Log("1    " + ModelLayer.msg.Optype);
            Skill0Button.onClick.AddListener(
                delegate {
                ModelLayer.ReleaseSkill0(username);
            }
                );
            Skill1Button.onClick.AddListener(
                delegate {
                ModelLayer.ReleaseSkill1(username);
            }
                );

            //Debug.Log("2    " +  ModelLayer.msg.Optype + "   " + ModelLayer.skillQueue.Count);
            ModelLayer.SendMessage();
            //Debug.Log("3    " + ModelLayer.msg.Optype);
            ModelLayer.ReceiveMessage();
            int userId = ModelLayer.PlayerMap[username];

            int diff = ModelLayer.SkillNextFrame[userId][0] - ModelLayer.clientFrame;
            if (diff >= 0)
            {
                Skill0CD.text = (diff / 20).ToString();
            }
            else
            {
                Skill0CD.text = "";
            }
            diff = ModelLayer.SkillNextFrame[userId][1] - ModelLayer.clientFrame;
            if (diff >= 0)
            {
                Skill1CD.text = (diff / 20).ToString();
            }
            else
            {
                Skill1CD.text = "";
            }


            ViewLayer.MovePosition();
            ViewLayer.PlayerAnimation();
        }
    }
예제 #26
0
        internal static async ValueTask <ulong> GenModelIdAsync(uint appId, ModelType type, ModelLayer layer)
        {
            if (layer == ModelLayer.SYS) //不允许SYS Layer
            {
                throw new ArgumentException(nameof(layer));
            }
            var meta = layer == ModelLayer.DEV ? Meta_App_Model_Dev_Counter : Meta_App_Model_Usr_Counter;
            var id   = appId.ToString();

            var db  = SqlStore.Default;
            var esc = db.NameEscaper;

            using var conn = db.MakeConnection();
            await conn.OpenAsync();

            using var txn = conn.BeginTransaction(); //不支持select for update的事务隔离级别

            using var cmd1   = db.MakeCommand();
            cmd1.Connection  = txn.Connection;
            cmd1.Transaction = txn;
            cmd1.CommandText = $"Select data From {esc}sys.Meta{esc} Where meta={meta} And id='{id}' For Update";
            using var reader = await cmd1.ExecuteReaderAsync();

            byte[] counterData = null;
            uint   seq         = 0;

            using var cmd2 = db.MakeCommand();
            if (await reader.ReadAsync()) //已存在计数器
            {
                counterData = (byte[])reader.GetValue(0);
                seq         = BitConverter.ToUInt32(counterData) + 1; //TODO:判断溢出
                counterData = BitConverter.GetBytes(seq);

                BuildUpdateMetaCommand(cmd2, meta, id, counterData);
            }
            else //不存在计数器
            {
                seq         = 1;
                counterData = BitConverter.GetBytes(seq);
                BuildInsertMetaCommand(cmd2, meta, id, (byte)ModelType.Application, counterData, false);
            }
            reader.Close();

            cmd2.Connection  = txn.Connection;
            cmd2.Transaction = txn;
            await cmd2.ExecuteNonQueryAsync();

            txn.Commit();

            var nid = (ulong)appId << IdUtil.MODELID_APPID_OFFSET;

            nid |= (ulong)type << IdUtil.MODELID_TYPE_OFFSET;
            nid |= (ulong)seq << IdUtil.MODELID_SEQ_OFFSET;
            nid |= (ulong)layer;
            return(nid);
        }
예제 #27
0
파일: Service.cs 프로젝트: rasmusjuhl/gitte
 public void DeleteAppointment(ModelLayer.Appointment appointment)
 {
     aCtr.DeleteAppointment(appointment);
 }