Example #1
0
        /// <summary>
        /// バリアントキャッシュ作成
        /// </summary>
        private void PrepareVariantCache()
        {
            var variantsInfoListDictionay = new Dictionary <string, List <VariantInfo> >();

            foreach (var assetBundleWithVariantIndex in m_AllAssetBundleWithVariantIndices)
            {
                var assetBundleWithVariant = m_AllAssetBundleNames[assetBundleWithVariantIndex];
                var variantPair            = assetBundleWithVariant.Split('.');
                if (variantPair.Length != 2)
                {
                    continue;
                }
                var info = new VariantInfo {
                    assetBundle = variantPair[0]
                    , assetBundleWithVariant = assetBundleWithVariant
                    , Variant = variantPair[1]
                };
                List <VariantInfo> variantsInfoList;
                if (!variantsInfoListDictionay.TryGetValue(info.assetBundle, out variantsInfoList))
                {
                    variantsInfoList = new List <VariantInfo>();
                    variantsInfoListDictionay[info.assetBundle] = variantsInfoList;
                }
                variantsInfoList.Add(info);
            }
            m_VariantsCache = variantsInfoListDictionay.ToDictionary(x => x.Key, x => x.Value.ToArray());
        }
        protected override void OnLoad(System.EventArgs e)
        {
            base.OnLoad(e);

            if (!Page.IsPostBack)
            {
                string ids = Request["id"];
                Variant result = MTApp.CatalogServices.ProductVariants.Find(ids);
                if (result != null)
                {
                    Product p = MTApp.CatalogServices.Products.Find(result.ProductId);
                    VariantInfo output = new VariantInfo();
                    output.Bvin = result.Bvin;
                    output.Sku = result.Sku;
                    if (output.Sku == string.Empty)
                    {
                        output.Sku = p.Sku;
                    }
                    output.Price = result.Price;
                    if (output.Price < 0)
                    {
                        output.Price = p.SitePrice;
                    }
                    output.ImageUrl = MerchantTribe.Commerce.Storage.DiskStorage.ProductVariantImageUrlMedium(this.MTApp, p.Bvin, p.ImageFileSmall, result.Bvin, true);

                    foreach (string s in result.SelectionNames(p.Options.VariantsOnly()))
                    {
                        output.Description += s + ", ";
                    }
                    this.litOutput.Text = MerchantTribe.Web.Json.ObjectToJson(output);
                }
            }

        }
        protected override void OnLoad(System.EventArgs e)
        {
            base.OnLoad(e);

            if (!Page.IsPostBack)
            {
                string  ids    = Request["id"];
                Variant result = MTApp.CatalogServices.ProductVariants.Find(ids);
                if (result != null)
                {
                    Product     p      = MTApp.CatalogServices.Products.Find(result.ProductId);
                    VariantInfo output = new VariantInfo();
                    output.Bvin = result.Bvin;
                    output.Sku  = result.Sku;
                    if (output.Sku == string.Empty)
                    {
                        output.Sku = p.Sku;
                    }
                    output.Price = result.Price;
                    if (output.Price < 0)
                    {
                        output.Price = p.SitePrice;
                    }
                    output.ImageUrl = MerchantTribe.Commerce.Storage.DiskStorage.ProductVariantImageUrlMedium(this.MTApp, p.Bvin, p.ImageFileSmall, result.Bvin, true);

                    foreach (string s in result.SelectionNames(p.Options.VariantsOnly()))
                    {
                        output.Description += s + ", ";
                    }
                    this.litOutput.Text = MerchantTribe.Web.Json.ObjectToJson(output);
                }
            }
        }
Example #4
0
        public void GetMnvFilterTag_SampleWithFailedMnv_MakredAsFailed()
        {
            var sampleFilterFailed = new[] { new List <bool> {
                                                 true, false
                                             } };
            var variantInfo = new VariantInfo(null, null, null, null, null, sampleFilterFailed);

            Assert.Equal(VariantInfo.FailedFilterTag, variantInfo.GetMnvFilterTag());
        }
Example #5
0
        public void GetMnvFilterTag_PassedSampleOverrideFailedSample()
        {
            var sampleFilterFailed = new[] { new List <bool> {
                                                 true, false
                                             }, new List <bool> {
                                                 false, false
                                             } };
            var variantInfo = new VariantInfo(null, null, null, null, null, sampleFilterFailed);

            Assert.Equal("PASS", variantInfo.GetMnvFilterTag());
        }
Example #6
0
            public void LoadVariant(VariantInfo variant)
            {
                var handTypes = variant.VariantLowBet.HandTypes().Select(ht => ht.ToFriendlyString().Replace("s", "<size=90>S</size>").Replace("w", "<size=90>W</size>"));

                Texts[0].text = handTypes.Join("\n");
                for (int i = 1; i <= 5; i++)
                {
                    var subvariant = variant.VariantIfUsingMaxBet(i == 5);
                    Texts[i].text = subvariant.HandTypes().Select(ht => subvariant.PayoutForResult(ht) * i).Join("\n");
                }
            }
 // 把list转为array设置给variantinfo对象 //
 private static void SetKeywordAndPasstype(VariantInfo tempInfo, List <string> tempKeywordList, List <PassType> tempPassTypeList)
 {
     if (tempInfo != null)
     {
         if (tempKeywordList != null && tempPassTypeList != null &&
             tempKeywordList.Count == tempPassTypeList.Count)
         {
             tempInfo.keywords = tempKeywordList.ToArray();
             tempInfo.passType = tempPassTypeList.ToArray();
         }
     }
 }
        private void UpdateUserViewVariantsAction()
        {
            bool hasViewVariants = (GetVariantsInfo() != null);

            UserViewVarintsAction.Items.FindItemByID(STR_DeleteViewVariant_Id).Enabled[STR_HasViewVariants_EnabledKey] =
                UserViewVarintsAction.Items.FindItemByID(STR_EditViewVariant_Id).Enabled[STR_HasViewVariants_EnabledKey]
                = hasViewVariants;

            if ((changeVariantController != null) && changeVariantController.ChangeVariantAction.SelectedItem != null)
            {
                VariantInfo variantInfo = (VariantInfo)changeVariantController.ChangeVariantAction.SelectedItem.Data;
                UserViewVarintsAction.Items.FindItemByID(STR_DeleteViewVariant_Id).Enabled[STR_IsRootViewVariant_EnabledKey]
                    = variantInfo.ViewID != GetRootViewId();
            }
        }
Example #9
0
        public string GetDeviceVariant(ReadOnlyCollection <string> aPcbNumberList)
        {
            lock (iLock)
            {
                VariantInfo result      = null;
                string      variantName = string.Empty;

                foreach (VariantInfo i in iVariantInfoList)
                {
                    foreach (string s in aPcbNumberList)
                    {
                        if (i.Pcas == s)
                        {
                            // can't just break when we find the first match as this wouldn't work for Renew products (it would match the base product first)
                            result = i;
                        }
                    }

                    if (result != null)
                    {
                        if (string.IsNullOrEmpty(result.BasePcas))
                        {
                            // Pcas match found, can't exit here as it may be a Renew
                            variantName = result.Name;
                        }
                        else
                        {
                            foreach (string s in aPcbNumberList)
                            {
                                if (i.BasePcas == s)
                                {
                                    // Pcas match found and BasePcas match found = gauranteed to be a Renew product (so exit here)
                                    return(result.Name);
                                }
                            }
                        }
                    }
                }

                return(variantName);
            }
        }
Example #10
0
 void ChangeVariantActionOnSelectedItemChanged(object sender, EventArgs eventArgs)
 {
     if (_changeVariantController.ChangeVariantAction.SelectedItem != null)
     {
         _rootListView       = FindRootListView();
         _currentVariantInfo = (VariantInfo)_changeVariantController.ChangeVariantAction.SelectedItem.Data;
         var items = _modifyVariantsAction.Items;
         if (_currentVariantInfo.Id == DefaultVariantId)
         {
             UpdateActionState();
         }
         else
         {
             foreach (var item in items)
             {
                 item.Enabled[DefaultVariantId] = true;
             }
         }
     }
 }
Example #11
0
        public void UpdateSampleFilters_AsExpected()
        {
            var positionFilters    = new[] { "PASS", "FAILED", "." };
            var sampleFilterFailed = new[] { new List <bool>(), new List <bool>() };
            var variantInfo        = new VariantInfo(null, positionFilters, null, null, null, sampleFilterFailed);

            variantInfo.UpdateSampleFilters(new[] { 0, 2 }, new List <SampleHaplotype> {
                new SampleHaplotype(0, 0), new SampleHaplotype(1, 1)
            });
            variantInfo.UpdateSampleFilters(new[] { 0, 1, 2 }, new List <SampleHaplotype> {
                new SampleHaplotype(0, 1)
            });

            Assert.Equal(2, sampleFilterFailed.Length);
            Assert.Equal(2, sampleFilterFailed[0].Count);
            Assert.Single(sampleFilterFailed[1]);
            Assert.False(sampleFilterFailed[0][0]);
            Assert.True(sampleFilterFailed[0][1]);
            Assert.False(sampleFilterFailed[1][0]);
        }
    private static void CreateSVC(string svcFileName, List <VariantInfo> variantInfos)
    {
        if (variantInfos == null || variantInfos.Count == 0)
        {
            return;
        }

        ShaderVariantCollection athenaSVC = new ShaderVariantCollection();

        for (int i = 0; i < variantInfos.Count; i++)
        {
            VariantInfo info = variantInfos[i];
            if (info == null || info.keywords == null)
            {
                continue;
            }

            for (int j = 0; j < info.keywords.Length; j++)
            {
                ShaderVariantCollection.ShaderVariant variant = new ShaderVariantCollection.ShaderVariant()
                {
                    shader = info.shader, keywords = new string[1] {
                        info.keywords[j]
                    }, passType = info.passType[j],
                };
                athenaSVC.Add(variant);
            }
        }

        // CreateAsset 的path参数要传 “Assets/Dir/file.postfix"  形式 //
        // 不能用 Application.dataPath + "/dIR/FILE.postfix" 形式 //

    #if UNITY_EDITOR
        AssetDatabase.CreateAsset(athenaSVC, "Assets/KeywordAndMultiCompile/" + svcFileName);
        AssetDatabase.Refresh();
    #endif
    }
Example #13
0
 void ChangeVariantActionOnSelectedItemChanged(object sender, EventArgs eventArgs)
 {
     if (_changeVariantController.ChangeVariantAction.SelectedItem != null)
     {
         _rootListView       = FindRootListView();
         _currentVariantInfo = (VariantInfo)_changeVariantController.ChangeVariantAction.SelectedItem.Data;
         var items = _viewVariantsChoiceAction.Items;
         if (_currentVariantInfo.Id == DefaultVariantId)
         {
             var choiceActionItems = items.Where(item => ReferenceEquals(item.Data, Delete)).ToList();
             foreach (var choiceActionItem in choiceActionItems)
             {
                 choiceActionItem.Enabled[DefaultVariantId] = false;
             }
         }
         else
         {
             foreach (var item in items)
             {
                 item.Enabled[DefaultVariantId] = true;
             }
         }
     }
 }
Example #14
0
        private void UpdateCheckStart()
        {
            try {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(kUpdatesAvailableUrl);
                request.Credentials       = CredentialCache.DefaultCredentials;
                request.Proxy.Credentials = CredentialCache.DefaultCredentials;

                try {
                    request.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.BypassCache);
                }
                catch {
                    // not supported for all platforms
                }

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                XmlDocument document = new XmlDocument();
                document.Load(response.GetResponseStream());

                XmlNamespaceManager nsManager = new XmlNamespaceManager(document.NameTable);
                nsManager.AddNamespace("linn", kLinnNamespace);

                // get update info
                foreach (XmlNode n in document.SelectNodes("/rss/channel/" + kReleasedDeviceTag, nsManager))
                {
                    string model   = n["linn:model"].InnerText;
                    string type    = n["linn:type"].InnerText;
                    string version = n["linn:version"].InnerText;
                    //string family = n["linn:family"].InnerText;
                    string url = n["linn:url"].InnerText;

                    UpdateInfo updateInfo = null;
                    if (type == "Main")
                    {
                        updateInfo = new UpdateInfo(model, version, url);
                        if (iUpdateInfo.ContainsKey(model))
                        {
                            iUpdateInfo[model] = updateInfo;
                        }
                        else
                        {
                            iUpdateInfo.Add(model, updateInfo);
                        }
                    }
                    else if (type == "Proxy")
                    {
                        updateInfo = new UpdateInfo(model, version);
                        if (iUpdateInfoProxy.ContainsKey(model))
                        {
                            iUpdateInfoProxy[model] = updateInfo;
                        }
                        else
                        {
                            iUpdateInfoProxy.Add(model, updateInfo);
                        }
                    }
                }

                // get variant info
                foreach (XmlNode n in document.SelectNodes("/rss/channel/linn:variantList/linn:variant", nsManager))
                {
                    string pcas     = n["linn:pcas"].InnerText;
                    string basepcas = null;
                    if (n["linn:basepcas"] != null)
                    {
                        basepcas = n["linn:basepcas"].InnerText;
                    }
                    string      name        = n["linn:name"].InnerText;
                    VariantInfo variantInfo = new VariantInfo(pcas, basepcas, name);
                    iVariantInfo.Add(variantInfo);
                }

                // get release notes
                request                   = (HttpWebRequest)WebRequest.Create(kReleaseNotesUrl);
                request.Credentials       = CredentialCache.DefaultCredentials;
                request.Proxy.Credentials = CredentialCache.DefaultCredentials;

                try {
                    request.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.BypassCache);
                }
                catch {
                    // not supported for all platforms
                }

                response = (HttpWebResponse)request.GetResponse();

                document = new XmlDocument();
                document.Load(response.GetResponseStream());
                iReleaseNotesXml = document.OuterXml;

                Lock();
                iUpdateCheckThread = null;
                Unlock();

                iUpdateCheckComplete = true;
                iUpdateCheckFailed   = false;

                if (EventUpdateCheckComplete != null)
                {
                    EventUpdateCheckComplete(this, EventArgs.Empty);
                }
            }
            catch (Exception e) {
                Lock();
                iUpdateCheckThread = null;
                Unlock();

                iUpdateCheckFailed = true;
                if (EventUpdateCheckError != null)
                {
                    EventUpdateCheckError(this, new EventArgsUpdateError(e.Message));
                }
            }
        }
Example #15
0
 Texture2D GetCursorIcon(VariantInfo info, bool isHovering) => isHovering ? info.Hover : info.Default;
Example #16
0
        /// <summary>
        /// This function trigges when an interpretation is double clicked.
        /// It prepares the annotation and spectrum viewer panels.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void triggerSpectrumViewer(object sender, EventArgs e)
        {
            // Get the current row
            DataGridViewRow row = spectraGrid.CurrentRow;

            if (row != null)
            {
                // Get the result and variant objects associated with this row
                Object[]     tags     = row.Tag as Object[];
                SpectrumInfo spectrum = tags[0] as SpectrumInfo;
                VariantInfo  variant  = tags[1] as VariantInfo;
                if (spectrum != null && currentSpectraGridSelection != row)
                {
                    try {
                        // Resolve the spectrum source
                        var source  = Path.GetFileNameWithoutExtension(spectrum.id.source.name);
                        var paths   = Properties.Settings.Default.SourcePath.Split(";".ToCharArray());
                        var matches = Util.FindFileInSearchPath(source, new string[] { "mzXML", "mzML", "mgf", "RAW" }, paths.ToArray(), true);
                        if (matches.Length == 0)
                        {
                            MessageBox.Show("Can't find source. Set the source folder path.");
                        }
                        else
                        {
                            // Convert the interpretation for seems compatibility
                            var interpetation = variant.ToSimpleString();
                            interpetation = interpetation.Replace('(', '[');
                            interpetation = interpetation.Replace(')', ']');
                            splitContainer4.Panel2.Hide();
                            splitContainer1.Panel2.Hide();
                            splitContainer5.Panel1.Hide();
                            splitContainer5.Panel2.Hide();
                            Application.DoEvents();
                            UniqueSpectrumID uniqueSpectrumID;
                            // Create a spectrum viewer and add its components
                            if (spectrum.nativeID != null && spectrum.nativeID.Length > 0)
                            {
                                currentSpectrumViewer = new SpectrumViewer(matches[0], spectrum.nativeID, interpetation);
                                uniqueSpectrumID      = new UniqueSpectrumID(source, spectrum.nativeID, spectrum.id.charge);
                            }
                            else
                            {
                                currentSpectrumViewer = new SpectrumViewer(matches[0], spectrum.id.index, interpetation);
                                uniqueSpectrumID      = new UniqueSpectrumID(source, spectrum.id.index, spectrum.id.charge);
                            }
                            splitContainer4.Panel2.Controls.Clear();
                            splitContainer4.Panel2.Controls.Add(currentSpectrumViewer.annotationPanel);
                            splitContainer5.Panel1.Controls.Clear();
                            splitContainer5.Panel1.Controls.Add(currentSpectrumViewer.spectrumPanel);
                            splitContainer5.Panel2.Controls.Clear();
                            splitContainer5.Panel2.Controls.Add(currentSpectrumViewer.fragmentationPanel);
                            splitContainer5.Panel2.AutoScroll = true;
                            splitContainer1.Panel2.Controls.Add(splitContainer5);
                            splitContainer1.Panel2.Show();
                            splitContainer4.Panel2.Show();
                            splitContainer5.Panel1.Show();
                            splitContainer5.Panel2.Show();
                            Application.DoEvents();
                            // If we have a seconday result associated with this spectrum,
                            // set the mechanism in spectrum viewer to see it.
                            if (alternativeInterpretations != null)
                            {
                                if (alternativeInterpretations.Contains(uniqueSpectrumID))
                                {
                                    VariantInfo alt = alternativeInterpretations[uniqueSpectrumID];
                                    interpetation = alt.ToSimpleString();
                                    interpetation = interpetation.Replace('(', '[');
                                    interpetation = interpetation.Replace(')', ']');
                                    currentSpectrumViewer.setSecondarySequence(interpetation);
                                }
                            }
                            currentSpectraGridSelection = row;
                        }
                    } catch (Exception exp) {
                        MessageBox.Show(exp.StackTrace);
                        MessageBox.Show("Failed to show spectrum. Check raw data path.");
                    }
                }
            }
        }
    private static List <VariantInfo> StripRedundantVariant(string svcFilePath, ShaderGUIDInfo[] shaderGUIDs)
    {
        if (string.IsNullOrEmpty(svcFilePath) || shaderGUIDs == null || shaderGUIDs.Length == 0)
        {
            return(null);
        }

        if (!File.Exists(svcFilePath))
        {
            return(null);
        }

        string[]           lines  = File.ReadAllLines(svcFilePath);
        List <VariantInfo> result = new List <VariantInfo>();

        // temp 变量 //
        VariantInfo     tempInfo         = null;
        List <string>   tempKeywordList  = null;
        List <PassType> tempPassTypeList = null;

        // 逻辑: 遇到 guid 行时,把tempKeywordList和tempPassTypeList转换成数组,设置给tempInfo, 再把tempInfo添加到result列表里 //
        int  skipLineNum = 0;
        bool parseLine   = false;

        for (int i = 0; i < lines.Length; i++)
        {
            if (skipLineNum > 0)
            {
                skipLineNum--;
                parseLine = true;
                continue;
            }

            string line = lines[i];

            int  guidInfoIndex = LineContainsGUID(line, shaderGUIDs);
            bool findGUID      = (guidInfoIndex != -1);
            if (findGUID)
            {
                skipLineNum = 2;
                parseLine   = false;

                SetKeywordAndPasstype(tempInfo, tempKeywordList, tempPassTypeList);

                tempInfo = new VariantInfo()
                {
                };
                tempInfo.shader  = shaderGUIDs[guidInfoIndex].shader;
                tempKeywordList  = new List <string>();
                tempPassTypeList = new List <PassType>();
                result.Add(tempInfo);

                continue;
            }

            if (parseLine)
            {
                if (line.Contains("keywords") && tempInfo != null && tempKeywordList != null)
                {
                    tempKeywordList.Add(GetKeywords(line));
                }
                else if (line.Contains("passType") && tempInfo != null && tempPassTypeList != null)
                {
                    tempPassTypeList.Add(GetPassType(line));
                }
            }

            bool islastLine = (i == lines.Length - 1);
            if (islastLine)
            {
                SetKeywordAndPasstype(tempInfo, tempKeywordList, tempPassTypeList);
                break;
            }
        }

        return(result);
    }