Example #1
0
        public void ReloadAll()
        {
            ImmutableArray <KeyValuePair <Uri, DocumentEntry> > opened;
            ImmutableArray <KeyValuePair <Uri, DocumentEntry> > closed;

            lock (_lock) {
                _documentsByUri.Split(kvp => kvp.Value.Document.IsOpen, out opened, out closed);

                foreach (var(uri, entry) in closed)
                {
                    _documentsByUri.Remove(uri);
                    entry.Document.Dispose();
                }
            }

            foreach (var(_, entry) in closed)
            {
                Closed?.Invoke(this, new DocumentEventArgs(entry.Document));
                Removed?.Invoke(this, new DocumentEventArgs(entry.Document));
            }

            foreach (var(_, entry) in opened)
            {
                entry.Document.Invalidate();
            }
        }
Example #2
0
        public UnityRestRequest WithBody(string body)
        {
            body = body.Trim('{', '}');

            string[] bodySplit = body.Split(',');

            Dictionary <string, string> values = new Dictionary <string, string>();

            for (int i = 0; i < bodySplit.Length; i++)
            {
                string key      = bodySplit[i].Split(':')[0];
                string onevalue = bodySplit[i].Split(':')[1];

                key = key.Replace('"', ' ');
                key = key.Trim();

                onevalue = onevalue.Replace('"', ' ');
                onevalue = onevalue.Trim();

                values.Add(key, onevalue);
            }

            this.body = values;

            return(this);
        }
        /// <summary>
        /// Generates a full randomly generated sentence based that starts with
        /// startingWord.
        /// </summary>
        /// <param name="startingWord"></param>
        /// <returns></returns>
        public String GenerateSentence(string startingWord)
        {
            int startingWordCount = startingwords.Count;
            int randStartingWord  = rand.Next(startingWordCount);

            startingWord = startingwords[randStartingWord];
            for (int i = 0; i <= 100; i++)
            {
                string[] parts    = startingWord.Split(' ');
                string   theWord  = parts[i];
                String   nextWord = GetNextWord(theWord);
                startingWord = startingWord + " " + nextWord;
            }
            return(startingWord);
        }
Example #4
0
        public static bool UpdateShowCommentTimes(Dictionary <string, int> datas)
        {
            bool issuccess = true;

            foreach (var item in datas.Split(10))
            {
                string sqlformat = "UPDATE [Tuhu_productcatalog].[dbo].[tbl_ProductStatistics] WITH(ROWLOCK) SET ShowCommentTimes={0} WHERE ProductID='{1}'";
                var    sqls      = string.Join(";", item.Select(x => string.Format(sqlformat, x.Value, x.Key)));
                using (var helper = DbHelper.CreateDbHelper(false))
                {
                    var result = helper.ExecuteNonQuery(sqls);
                    issuccess &= result >= 0;
                }
            }
            return(issuccess);
        }
        public void SendRadiuses(int matchId, ushort playerId, Dictionary <ushort, ushort> radiuses, bool rudp = false)
        {
            var length = PackingHelper.GetByteLength(radiuses);

            if (length > PackingHelper.MaxSingleMessageSize)
            {
                log.Warn($"MatchId {matchId}, playerId {playerId}: превышение размера сообщения в {nameof(SendRadiuses)} ({length} из {PackingHelper.MaxSingleMessageSize}), выполняется разделение сообщения.");
                var messagesCount = (length - 1) / PackingHelper.MaxSingleMessageSize + 1;
                var dictionaries  = radiuses.Split(messagesCount);
                for (var i = 0; i < dictionaries.Length; i++)
                {
                    var message = new RadiusesMessage(dictionaries[i]);
                    SendUdp(matchId, playerId, message, rudp);
                }
            }
            else
            {
                var message = new RadiusesMessage(radiuses);
                SendUdp(matchId, playerId, message, rudp);
            }
        }
Example #6
0
        private Dictionary<string, string> Properties2Dictionary(string properties)
        {
            Dictionary<string, string> dictionary = new Dictionary<string, string>();
            properties = properties.Replace("\r", "");
            foreach (var line in properties.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries))
            {
                if ((!string.IsNullOrEmpty(line)) && (!line.StartsWith(";")) && (!line.StartsWith("#")) && (!line.StartsWith("'")) && (line.Contains("=")))
                {
                    int index = line.IndexOf('=');
                    string key = line.Substring(0, index).Trim();
                    string value = line.Substring(index + 1).Trim();

                    if ((value.StartsWith("\"") && value.EndsWith("\"")) || (value.StartsWith("'") && value.EndsWith("'")))
                    {
                        value = value.Substring(1, value.Length - 2);
                    }
                    dictionary.Add(key, value);
                }
            }
            return dictionary;
        }
Example #7
0
        private static Dictionary <RpcType, Metadata> ParseMetadataArgument(string metadataArg)
        {
            var rpcMetadata = new Dictionary <RpcType, Metadata>();

            if (string.IsNullOrEmpty(metadataArg))
            {
                return(rpcMetadata);
            }

            foreach (var metadata in metadataArg.Split(','))
            {
                var parts = metadata.Split(':');
                if (parts.Length != 3)
                {
                    throw new ArgumentException($"Invalid metadata: \"{metadata}\"");
                }
                var rpc   = ParseRpc(parts[0]);
                var key   = parts[1];
                var value = parts[2];

                var md = new Metadata {
                    { key, value }
                };

                if (rpcMetadata.ContainsKey(rpc))
                {
                    var existingMetadata = rpcMetadata[rpc];
                    foreach (var entry in md)
                    {
                        existingMetadata.Add(entry);
                    }
                }
                else
                {
                    rpcMetadata.Add(rpc, md);
                }
            }
            return(rpcMetadata);
        }
Example #8
0
        static void Main(string[] args)
        {
            var luckyArray = new[] { 1, 3, 5, 6, 7, 8, 11, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 31, 32, 33, 35, 37, 41, 45, 47, 48, 49, 52, 57, 61, 63, 65, 67, 68, 81 };

            var a = 15;  //林

            var numList = new List <(int, int)>();

            for (int b = 1; b < 23; b++)
            {
                for (int c = 1; c < 23; c++)
                {
                    var 天格 = a + 1;
                    var 人格 = a + b;
                    var 地格 = b + c;
                    var 外格 = c + 1;
                    var 总格 = a + b + c;
                    if (luckyArray.Contains(人格) &&
                        luckyArray.Contains(地格) &&
                        luckyArray.Contains(外格) &&
                        luckyArray.Contains(总格))
                    {
                        numList.Add((b, c));
                    }
                }
            }

            var array = Dictionary.Split("画:").SelectMany(x => x.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries)).Where(x => x.Contains("(")).ToArray();

            var charList = array.SelectMany(x =>
            {
                var index = Array.IndexOf(array, x);

                var chars = x.Split(' ', StringSplitOptions.RemoveEmptyEntries);

                return(chars.Select(y =>
                {
                    var ar1 = y.Split(new[] { "(", ")" }, StringSplitOptions.RemoveEmptyEntries);
                    return new CharProperty
                    {
                        Char = ar1[0],
                        FiveElement = Enum.Parse <FiveElementEnum>(ar1[1]),
                        StrokeNumber = index + 1,
                        PinYin = new PinYin(PinyinHelper.ToHanyuPinyinStringArray(ar1[0].ToCharArray()[0])[0])
                    };
                }));
            }).ToList();

            var exclude = @"芫芩芪笈午荀烜两极老纭桔打茹姐妹底萌炳桃菊綦魁菁郢萤瑗日月卞金木水火土琴仇牙铭熙耿炯婷仪凤玲鹏诚人犬牛刁刀芬娟
花乳使娓旃针笫站笋珍芙哥芸二又子口它兄母五弓己廿女土兀上下半包北丙必布氐卉甲巨抖昉杰荃吉
卯末丕目去仨他戊只仔但弟佃囤攻罕妞汝妥伍卡巳靠鼐万暴凯铭娘鑫祥嘉伟亮鸿俚尺耳强耒长短止仉
局岑囯局桓闳茼荃筌祁集棋吾言戎竹岛疾笆祗羌邕纨杷";

            var list1 = charList.Where(x => !exclude.Contains(x.Char) &&
                                       x.StrokeNumber < 15 &&
                                       (x.FiveElement == FiveElementEnum.火 ||
                                        x.FiveElement == FiveElementEnum.木) &&
                                       x.PinYin.Initials != "y" &&
                                       x.PinYin.Final != "e" &&
                                       x.PinYin.Tone != 4);
            var list2 = charList.Where(x => !exclude.Contains(x.Char) &&
                                       x.StrokeNumber < 15 &&
                                       x.FiveElement == FiveElementEnum.木 &&
                                       x.PinYin.Tone < 3);

            var nameList = numList.SelectMany(x =>
                                              list1.Where(y =>
                                                          y.StrokeNumber == x.Item1).SelectMany(y =>
                                                                                                list2.Where(z =>
                                                                                                            z.StrokeNumber == x.Item2 &&
                                                                                                            z.PinYin.Initials != y.PinYin.Initials &&
                                                                                                            z.PinYin.Final != y.PinYin.Final &&
                                                                                                            z.PinYin.Tone != y.PinYin.Tone).Select(z =>
                                                                                                                                                   $"叶{y}{z}"))).ToList();

            var result = string.Join("、", nameList /*.Where(x => x.Contains('洋'))*/);

            Console.WriteLine(@"
--------------------------------------------------------");
            Console.WriteLine(result);
            Console.WriteLine(@"
--------------------------------------------------------");
            Console.WriteLine($"共 {nameList.Count} 个");
        }
Example #9
0
        public Repo(string url)
        {
            this.url = url;

            // Downloads Release file from url, reads it and deletes it
            string releasefile = Helper.ReadUrl(url, "Release");

            //File.Delete("Release");

            // different OSes uses different endings so this splits each line into a element of an array
            string[] split = releasefile.Split("\r\n");
            if (split.Length < 2)
            {
                split = releasefile.Split("\n");
            }
            if (split.Length < 2)
            {
                split = releasefile.Split('\r');
            }

            // Intilize a dictionary for repo data
            this.data = new Dictionary <string, string>();
            // This will go through each line and place x of "x: y" in key and y in value
            foreach (string data in split)
            {
                string[] keyval = data.Split(": ");
                if (keyval.Length < 2)
                {
                    break;
                }
                this.data.Add(keyval[0], keyval[1]);
            }

            this.data.TryGetValue("Label", out this.name); // Grabs repo name and puts it in this.name
            string dir = this.name;                        // Repo directory

            DownloadPackages(dir);                         //Puts packages file in *dir*/Packages

            // Reads the Packages file stored in repo directory
            string content = Helper.ReadFromPath(dir + (dir.EndsWith('/') ? "Packages" : "/Packages"));

            // different OSes uses different endings so this splits each line into a element of an array
            string[] contentarr = content.Split("\n\n");
            if (contentarr.Length < 2)
            {
                contentarr = content.Split("\r\n\r\n");
            }
            if (contentarr.Length < 2)
            {
                contentarr = content.Split("\r\r");
            }
            // Initilize a dictionary with format name: packagedata
            this.packages = new Dictionary <string, Package>();
            foreach (string package in contentarr)
            {
                // Initilize a Dictionary dataname: data
                Dictionary <string, string> packagedatadict = new Dictionary <string, string>();

                // different OSes uses different endings so this splits each line into a element of an array
                string[] packagedata = package.Split('\n');
                if (packagedata.Length < 2)
                {
                    packagedata = package.Split('\r');
                }
                if (packagedata.Length < 2)
                {
                    packagedata = package.Split("\r\n");
                }
                // This will go through each line and place x of "x: y" in key and y in value
                foreach (string data in packagedata)
                {
                    string[] keyval = data.Split(": ");
                    if (keyval.Length < 2)
                    {
                        break;
                    }
                    packagedatadict.Add(keyval[0], keyval[1]);
                }
                string name;
                if (packagedatadict.TryGetValue("Package", out name))
                {
                    if (!this.packages.TryAdd(name, new Package(packagedatadict, this.url)) && Helper.debug)
                    {
                        Console.WriteLine("Duplicate name, skipping...");
                    }
                }
                else
                {
                    // TODO
                    // Check version and overwrite if newer
                    Console.WriteLine("Could not grab name from package, skipping...");
                    continue;
                }
            }
        }
Example #10
0
        private Dictionary<string, string> Properties2Dictionary(string properties)
        {
            Dictionary<string, string> dictionary = new Dictionary<string, string>();
            properties = properties.Replace("\r", "");
            foreach (var line in properties.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries))
            {
                if ((!string.IsNullOrEmpty(line)) && (!line.StartsWith(";")) && (!line.StartsWith("#")) && (!line.StartsWith("'")) && (line.Contains("=")))
                {
                    int index = line.IndexOf('=');
                    string key = line.Substring(0, index).Trim();
                    string value = line.Substring(index + 1).Trim();

                    if ((value.StartsWith("\"") && value.EndsWith("\"")) || (value.StartsWith("'") && value.EndsWith("'")))
                    {
                        value = value.Substring(1, value.Length - 2);
                    }
                    dictionary.Add(key, value);
                }
            }
            return dictionary;
        }
Example #11
0
        void PlaybackInternal(string source)
        {
            Recording    = false;
            Playing      = true;
            playingTimer = 0;
            playbackMax  = 0;

            playbackButtonData.Clear();
            playbackAxisData.Clear();
            foreach (var a in axis)
            {
                playbackAxisData.Add(new Dictionary <int, Vector2>());
            }

            string s = Util.DecompressString(source);

            var sb = s.Split('%');

            if (sb[0] != "")
            {
                var split = sb[0].Split((char)16);
                foreach (var rec in split)
                {
                    var timedata = rec.Split(':');
                    var time     = int.Parse(timedata[0]);
                    playbackMax = (int)Util.Max(time, playbackMax);
                    playbackButtonData.Add(time, new Dictionary <string, int>());
                    var entries = timedata[1].Split('|');
                    foreach (var e in entries)
                    {
                        var data = e.Split('>');
                        playbackButtonData[time].Add(data[0], int.Parse(data[1]));
                    }
                }
            }

            var i = 0;

            foreach (var axesdata in sb[1].Split('^'))
            {
                foreach (var axis in axesdata.Split(';'))
                {
                    if (axis == "")
                    {
                        continue;
                    }
                    var axisdata = axis.Split('>');
                    var time     = int.Parse(axisdata[0]);
                    playbackMax = (int)Util.Max(time, playbackMax);
                    axisdata    = axisdata[1].Split(',');
                    var x = axisdata[0];
                    var y = axisdata[1];
                    playbackAxisData[i].Add(time, new Vector2(float.Parse(x), float.Parse(y)));
                }
                i++;
            }

            foreach (var b in buttons)
            {
                b.Value.ForceState(false);
            }
            foreach (var a in axis)
            {
                a.Value.ForceState(0, 0);
            }
        }
Example #12
0
        public string ConsultaFirst(int pkey)
        {
            string res = "";
            string pr = "";
            string elementos = "";
            int c = 1;
             //Obtener todas las producciones
            do {
                pr = ConsultaProd(Convert.ToString(pkey) + "." + Convert.ToString(c));
                elementos += pr + "|";
                c++;
            }
            while (pr != "");
            string [] or = elementos.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);

            for (int i = 0; i < or.Length; i++) {
                int apuntador = 0;
                bool terminado = false;
                string[] ntot = or[i].Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                //Si es t se termina
                while (!terminado) {
                    if (apuntador >= ntot.Length) {
                        res += "$";
                        terminado = true;
                    }
                    else {
                        //Analiza lo que apunte
                        string o = ntot[apuntador];
                        //Si es NT
                        if (o.StartsWith("-")) {
                            int nt = Convert.ToInt32(o);
                            res += ConsultaFirst(nt);
                            string [] r = res.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                            if (r.Length > 1 && r[r.Length - 1].StartsWith("0.")) {
                                res = "";
                                for (int j = 0; j < r.Length - 1; j++) {
                                    res += r[j] + ",";
                                }
                                apuntador++;
                            }
                            else {
                                terminado = true;
                            }
                        }
                        else {
                            //Si es T
                            if (o == "0") {
                                string epsilon = "0." + Convert.ToString(pkey).Substring(1);
                                res += epsilon+ ",";
                            }
                            else {
                                res += ntot[apuntador] + ",";
                            }
                            terminado = true;
                        }
                    }
                }
            }

            return res;
        }