Exemplo n.º 1
0
        public void SaveRule()
        {
            var dal = new DAL();
            var bonds = dal.GetList();
            if (bonds.Count == 0)
            {
                const string message = @"You do not have any bonds to Save, thus I am unable "
                    + @" to save any bonds. Please add some bonds before Saving";
                MessageBox.Show(message);
                return;
            }

            var dlg = new SaveFileDialog { FileName = "Prize Bond Manager",
                DefaultExt = ".pbm", Filter = @"Prize Bond Manager Files (.pbm)|*.pbm" };

            // Show save file dialog box
            var result = dlg.ShowDialog();

            // Process save file dialog box results
            if (result == DialogResult.OK)
            {
                // Save document
                string filename = dlg.FileName;
                var serializer = new Serializer();
                var objectToSerialize = new ObjectToSerialize { Bonds = bonds };
                serializer.SerializeObject(filename, objectToSerialize);
            }
        }
Exemplo n.º 2
0
		public void SyncState(Serializer ser)
		{
			ser.BeginSection("HuC6280");
			ser.Sync("A", ref A);
			ser.Sync("X", ref X);
			ser.Sync("Y", ref Y);
			ser.Sync("P", ref P);
			ser.Sync("PC", ref PC);
			ser.Sync("S", ref S);
			ser.Sync("MPR", ref MPR, false);
			ser.Sync("LagIFlag", ref LagIFlag);
			ser.Sync("IRQ1Assert", ref IRQ1Assert);
			ser.Sync("IRQ2Assert", ref IRQ2Assert);
			ser.Sync("TimerAssert", ref TimerAssert);
			ser.Sync("IRQControlByte", ref IRQControlByte);
			ser.Sync("IRQNextControlByte", ref IRQNextControlByte);
			ser.Sync("ExecutedCycles", ref TotalExecutedCycles);
			ser.Sync("PendingCycles", ref PendingCycles);
			ser.Sync("LowSpeed", ref LowSpeed);
			ser.Sync("TimerTickCounter", ref TimerTickCounter);
			ser.Sync("TimerReloadValue", ref TimerReloadValue);
			ser.Sync("TimerValue", ref TimerValue);
			ser.Sync("TimerEnabled", ref TimerEnabled);
			ser.Sync("InBlockTransfer", ref InBlockTransfer);
			ser.Sync("BTFrom", ref btFrom);
			ser.Sync("BTTo", ref btTo);
			ser.Sync("BTLen", ref btLen);
			ser.Sync("BTAlternator", ref btAlternator);
			ser.EndSection();
		}
Exemplo n.º 3
0
		public override void SyncState(Serializer ser)
		{
			ser.Sync("prg_reg", ref prg_reg);
			ser.Sync("chr_reg", ref chr_reg);
			ser.Sync("prg_mode", ref prg_mode);
			base.SyncState(ser);
		}
Exemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="GameSystem" /> class.
 /// </summary>
 /// <param name="game">The game.</param>
 public YamlManager(Game game) : base(game)
 {
     Services.AddService(this);
     yamlSettings = new SerializerSettings();
     attributeRegistry = yamlSettings.Attributes;
     serializer = new Serializer(yamlSettings);
 }
        public override ValueSerializer BuildSerializer(Serializer serializer, Type type,
            ConcurrentDictionary<Type, ValueSerializer> typeMapping)
        {
            var x = new ObjectSerializer(type);
            typeMapping.TryAdd(type, x);

            var elementType = GetEnumerableType(type);
            var arrType = elementType.MakeArrayType();
            var listModule = type.Assembly.GetType("Microsoft.FSharp.Collections.ListModule");
            var ofArray = listModule.GetMethod("OfArray");
            var ofArrayConcrete = ofArray.MakeGenericMethod(elementType);
            var ofArrayCompiled = CodeGenerator.CompileToDelegate(ofArrayConcrete, arrType);
            var toArray = listModule.GetMethod("ToArray");
            var toArrayConcrete = toArray.MakeGenericMethod(elementType);
            var toArrayCompiled = CodeGenerator.CompileToDelegate(toArrayConcrete, type);

            ValueWriter writer = (stream, o, session) =>
            {
                var arr = toArrayCompiled(o);
                var arrSerializer = serializer.GetSerializerByType(arrType);
                arrSerializer.WriteValue(stream,arr,session);
            };

            ValueReader reader = (stream, session) =>
            {               
                var arrSerializer = serializer.GetSerializerByType(arrType);
                var items = (Array)arrSerializer.ReadValue(stream, session);                          
                var res = ofArrayCompiled(items);
                return res;
            };
            x.Initialize(reader, writer);
            return x;
        }
Exemplo n.º 6
0
        private void Config_FormClosing(object sender, FormClosingEventArgs e)
        {
            //TODO: Validar se arquivo .mfc é válido
            if (_contadorErro <= 3 && !System.IO.File.Exists(txtPasta.Text))
            {
                MessageBox.Show("Por favor, selecione um arquivo válido de configurações do Mock MF.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                e.Cancel = true;
                _contadorErro++;
                return;
            }

            if (_contadorErro > 3)
            {
                e.Cancel = false;
                Application.Exit();
                return;
            }

            FileInfo fInfo = new FileInfo(txtPasta.Text);
            Configuracoes.CaminhoArquivo = fInfo.DirectoryName;
            Configuracoes.TelaInicial = Path.GetFileNameWithoutExtension(txtPasta.Text);
            var baseMFSerializer =new Serializer<BaseMF>();
            if (checkSalvar.Checked)
                File.WriteAllText(String.Format("{0}\\{1}.xml", Application.LocalUserAppDataPath, Configuracoes.Nome), baseMFSerializer.XmlSerialize(Configuracoes));
        }
Exemplo n.º 7
0
        public override void Serialize(Serializer serializer)
        {
            base.Serialize(serializer);

            serializer.Serialize(ref delta, "delta");
            serializer.Serialize(ref itemDefinition, "itemDefinition");
        }
Exemplo n.º 8
0
 public void Deserialize(System.IO.TextReader rdr, Serializer serializer)
 {
     string name, value, rigthPart;
     var parameters = new System.Collections.Specialized.NameValueCollection();
     while (rdr.Property(out name, out value, out rigthPart, parameters) && !string.IsNullOrEmpty(name)) {
         switch (name.ToUpper()) {
             case "CLASS": Class = value.ToEnum<Classes>(); break;
             case "STATUS": Status = value.ToEnum<Statuses>(); break;
             case "UID": UID = value; break;
             case "ORGANIZER":
                 Organizer = new Contact();
                 Organizer.Deserialize(value, parameters);
                 break;
             case "CATEGORIES":
                 Categories = value.SplitEscaped().ToList();
                 break;
             case "DESCRIPTION": Description = value; break;
             case "SEQUENCE": Sequence = value.ToInt(); break;
             case "LAST-MODIFIED": LastModified = value.ToDateTime(); break;
             case "DTSTAMP": DTSTAMP = value.ToDateTime(); break;
             case "END": return;
             default:
                 Properties.Add(Tuple.Create(name, value, parameters));
                 break;
         }
     }
 }
Exemplo n.º 9
0
		public override void SyncState(Serializer ser)
		{
			base.SyncState(ser);
			ser.Sync("toggle1", ref _toggle1);
			ser.Sync("toggle2", ref _toggle2);
			ser.Sync("toggle3", ref _toggle3);
		}
Exemplo n.º 10
0
		public override void SyncState(Serializer ser)
		{
			base.SyncState(ser);
			ser.Sync("chr_regs_1k", ref chr_regs_1k);
			ser.Sync("prg_regs_8k", ref prg_regs_8k);
			ser.Sync("wramenable", ref wramenable);
		}
Exemplo n.º 11
0
		public override void SyncState(Serializer ser)
		{
			base.SyncState(ser);
			ser.Sync("block", ref block);
			ser.Sync("prg", ref prg);
			ser.Sync("mode", ref mode);
		}
Exemplo n.º 12
0
		public override void SyncState(Serializer ser)
		{
			base.SyncState(ser);
			ser.Sync("prg_bank_mask_16k", ref prg_bank_mask_16k);
			ser.Sync("prg_bank_16k", ref prg_bank_16k);
			ser.Sync("prg_banks_16k", ref prg_banks_16k);
		}
Exemplo n.º 13
0
		public override void SyncState(Serializer ser)
		{
			base.SyncState(ser);
			ser.BeginSection("FDS");
			ser.BeginSection("RamAdapter");
			diskdrive.SyncState(ser);
			ser.EndSection();
			ser.BeginSection("audio");
			audio.SyncState(ser);
			ser.EndSection();
			{
				// silly little hack
				int tmp = currentside != null ? (int)currentside : 1234567;
				ser.Sync("currentside", ref tmp);
				currentside = tmp == 1234567 ? null : (int?)tmp;
			}
			for (int i = 0; i < NumSides; i++)
				ser.Sync("diskdiffs" + i, ref diskdiffs[i], true);
			ser.Sync("_timerirq", ref _timerirq);
			ser.Sync("_diskirq", ref _diskirq);
			ser.Sync("diskenable", ref diskenable);
			ser.Sync("soundenable", ref soundenable);
			ser.Sync("reg4026", ref reg4026);
			ser.Sync("timerlatch", ref timerlatch);
			ser.Sync("timervalue", ref timervalue);
			ser.Sync("timerreg", ref timerreg);
			ser.EndSection();

			SetIRQ();
		}
        public override void Serialize(Serializer serializer)
        {
            base.Serialize(serializer);

            serializer.Serialize(ref delta, "delta");
            serializer.Serialize(ref tileType, "tileType");
        }
Exemplo n.º 15
0
		public override void SyncState(Serializer ser)
		{
			ser.Sync("bank_4k", ref _bank4K);
			ser.Sync("gameTotal", ref _gameTotal);
			ser.Sync("currentGame", ref _currentGame);
			base.SyncState(ser);
		}
Exemplo n.º 16
0
		public void Deserialize(System.IO.TextReader rdr, Serializer serializer) {
			string name, value;
			var parameters = new System.Collections.Specialized.NameValueCollection();
			while (rdr.Property(out name, out value, parameters) && !string.IsNullOrEmpty(name)) {
				switch (name.ToUpper()) {
					case "UID": UID = value; break;
					case "ORGANIZER":
						Organizer = new Contact();
						Organizer.Deserialize(value, parameters);
						break;
					case "SEQUENCE": Sequence = value.ToInt(); break;
					case "LAST-MODIFIED": LastModified = value.ToDateTime(); break;
					case "DTSTART": LastModified = value.ToDateTime(); break;
					case "DTEND": LastModified = value.ToDateTime(); break;
					case "DTSTAMP": DTSTAMP = value.ToDateTime(); break;
					case "FREEBUSY":
						var parts = value.Split('/');
						Details.Add(new DateTimeRange {
							From = parts.FirstOrDefault().ToDateTime(),
							To = parts.ElementAtOrDefault(1).ToDateTime()
						});
						break;
					case "END": return;
					default:
						Properties.Add(Tuple.Create(name, value, parameters));
						break;
				}
			}
		}
Exemplo n.º 17
0
        public override void Serialize(Serializer serializer)
        {
            base.Serialize(serializer);

            serializer.Serialize(ref delta, "delta");
            serializer.Serialize(ref damage, "damage");
        }
Exemplo n.º 18
0
        internal static void PlainCopy(Serializer context, ISerializableObject from, ISerializableObject to, FieldLock fieldLock, bool forceForeignKeyCopy)
        {
            AttributeWorker w = AttributeWorker.GetInstance(context.Target);

            FieldInfo[] fis = AttributeWorker.RetrieveAllFields(from.GetType());

            foreach (FieldInfo fi in fis)
            {
                if (fieldLock.IsLocked(fi)) continue;
                if (AttributeWorker.IsRelationField(fi)) continue;
                if (w.IsAutoincID(fi)) continue;
                if (!w.IsPersistentField(fi)) continue;
                if (AttributeWorker.IsRowGuid(fi)) continue;
                if (w.IsForeignKey(context, fi) && !forceForeignKeyCopy)
                {
                    DirectSyncAttribute a = (DirectSyncAttribute)Attribute.GetCustomAttribute(fi, typeof(DirectSyncAttribute));

                    if (a == null) continue;
                }

                Object val = fi.GetValue(from);
                fi.SetValue(to, val);

            }
        }
 public void Setup()
 {
     _serializer = new Serializer();
     _stream = new MemoryStream();
     _testStruct = LargeStruct.Create();
     _testPerson = TypicalPersonData.MakeRandom();
 }
Exemplo n.º 20
0
        public override void Serialize(Serializer serializer)
        {
            base.Serialize(serializer);

            serializer.Serialize(ref delta, "delta");
            serializer.Serialize(ref effectId, "effectId");
        }
Exemplo n.º 21
0
Arquivo: Util.cs Projeto: nhtera/Home
 public Util(Core RennderCore)
 {
     R = RennderCore;
     Str = new Str(R);
     Xml = new Xml();
     Serializer = new Serializer(R);
 }
Exemplo n.º 22
0
		public override void SyncState(Serializer ser)
		{
			base.SyncState(ser);
			ser.Sync("prg", ref prg, false);
			ser.Sync("chr", ref chr, false);
			ser.Sync("wramenable", ref wramenable);
		}
Exemplo n.º 23
0
		public override void SyncState(Serializer ser)
		{
			base.SyncState(ser);
			ser.Sync("reg_addr", ref reg_addr);
			ser.Sync("regs", ref regs);
			Sync();
		}
Exemplo n.º 24
0
    public void GenXML()
    {
        String sourceUri = Server.MapPath("5648.xml");
        String xqUri = Server.MapPath("graph.xq");

        using (FileStream sXml = File.OpenRead(sourceUri))
        {
            using (FileStream sXq = File.OpenRead(xqUri))
            {
                Processor processor = new Processor();
                XQueryCompiler compiler = processor.NewXQueryCompiler();
                compiler.BaseUri = sourceUri;
                XQueryExecutable exp = compiler.Compile(sXq);
                XQueryEvaluator eval = exp.Load();

                DocumentBuilder loader = processor.NewDocumentBuilder();
                loader.BaseUri = new Uri(sourceUri);
                XdmNode indoc = loader.Build(new FileStream(sourceUri, FileMode.Open, FileAccess.Read));

                eval.ContextItem = indoc;
                Serializer qout = new Serializer();
                qout.SetOutputProperty(Serializer.METHOD, "xml");
                qout.SetOutputProperty(Serializer.INDENT, "yes");
                qout.SetOutputProperty(Serializer.SAXON_INDENT_SPACES, "1");
                qout.SetOutputWriter(Response.Output);
                eval.Run(qout);
            }
        }
    }
Exemplo n.º 25
0
		public void Deserialize(System.IO.TextReader rdr, Serializer serializer) {
			string name, value;
			var parameters = new System.Collections.Specialized.NameValueCollection();
			while (rdr.Property(out name, out value, parameters) && !string.IsNullOrEmpty(name)) {
				switch (name.ToUpper()) {
					case "BEGIN":
						switch (value) {
							case "VALARM":
								var a = serializer.GetService<Alarm>();
								a.Deserialize(rdr, serializer);
								Alarms.Add(a);
								break;
						}
						break;
					case "ATTENDEE":
						var contact = new Contact();
						contact.Deserialize(value, parameters);
						Attendees.Add(contact);
						break;
					case "CATEGORIES":
						Categories = value.SplitEscaped().ToList();
						break;
					case "CLASS": Class = value.ToEnum<Classes>(); break;
					case "CREATED": Created = value.ToDateTime(); break;
					case "DESCRIPTION": Description = value; break;
					case "DTEND": End = value.ToDateTime(); break;
					case "DTSTAMP": DTSTAMP = value.ToDateTime().GetValueOrDefault(); break;
					case "DTSTART": Start = value.ToDateTime(); break;
					case "LAST-MODIFIED": LastModified = value.ToDateTime(); break;
					case "LOCATION": Location = value; break;
					case "ORGANIZER":
						Organizer = serializer.GetService<Contact>();
						Organizer.Deserialize(value, parameters);
						break;
					case "PRIORITY": Priority = value.ToInt(); break;
					case "SEQUENCE": Sequence = value.ToInt(); break;
					case "STATUS": Status = value.ToEnum<Statuses>(); break;
					case "SUMMARY": Summary = value; break;
					case "TRANSP": Transparency = value; break;
					case "UID": UID = value; break;
					case "URL": Url = value.ToUri(); break;
					case "ATTACH":
						var attach = value.ToUri();
						if (attach != null)
							Attachments.Add(attach);
						break;
					case "RRULE":
						var rule = serializer.GetService<Recurrence>();
						rule.Deserialize(null, parameters);
						Recurrences.Add(rule);
						break;
					case "END": return;
					default:
						Properties.Add(Tuple.Create(name, value, parameters));
						break;
				}
			}

			IsAllDay = Start == End;
		}
Exemplo n.º 26
0
		public override void SyncState(Serializer ser)
		{
			base.SyncState(ser);
			ser.Sync("irq_target", ref irq_target);
			ser.Sync("irq_counter", ref irq_counter);
			ser.Sync("irq_enabled", ref irq_enabled);
			ser.Sync("irq_pending", ref irq_pending);
			ser.Sync("in_frame", ref in_frame);
			ser.Sync("exram_mode", ref exram_mode);
			ser.Sync("chr_mode", ref chr_mode);
			ser.Sync("prg_mode", ref prg_mode);
			ser.Sync("chr_reg_high", ref chr_reg_high);
			ser.Sync("ab_mode", ref ab_mode);
			ser.Sync("regs_a", ref regs_a);
			ser.Sync("regs_b", ref regs_b);
			ser.Sync("regs_prg", ref regs_prg);
			ser.Sync("nt_modes", ref nt_modes);
			ser.Sync("nt_fill_tile", ref nt_fill_tile);
			ser.Sync("nt_fill_attrib", ref nt_fill_attrib);
			ser.Sync("wram_bank", ref wram_bank);
			ser.Sync("last_nt_read", ref last_nt_read);
			ser.Sync("EXRAM", ref EXRAM, false);

			SyncPRGBanks();
			SyncCHRBanks();
			SyncMultiplier();
			SyncIRQ();
			audio.SyncState(ser);
		}
Exemplo n.º 27
0
 public virtual void LoadXML(string filename)
 {
     Serializer<List<StringMap>> serializer = new Serializer<List<StringMap>>();
     List<StringMap> tmp = serializer.Load(filename);
     if (tmp != null)
         stringmap = tmp;
 }
Exemplo n.º 28
0
        public override void Serialize(Serializer serializer)
        {
            base.Serialize(serializer);

            serializer.Serialize(ref delta, "delta");
            serializer.Serialize(ref soundId, "soundId");
        }
Exemplo n.º 29
0
		public override void SyncState(Serializer ser)
		{
			base.SyncState(ser);
			ser.Sync("prg_mode_mapper", ref prg_mode_mapper);
			ser.Sync("prg_page", ref prg_page);
			ser.Sync("chr_block_or", ref chr_block_or);
		}
        protected virtual Serializer Deserialize(Serializer serializer)
        {
            Bones.Clear();
            PrimaryBoneID = "";

            List<XElement> subObjects = (from el
                                    in serializer.SerializedData.Elements("dataitem").Elements("object")
                                    select el).ToList();

            for (int i = 0; i < subObjects.Count; i++)
            {
                if ((Type.GetType((string)subObjects[i].Attribute("type")) != null) &&
                    (Type.GetType((string)subObjects[i].Attribute("type")).GetInterfaces().Contains(typeof(IBone))))
                {
                    ReinstateBone(subObjects[i]);
                }
            }

            WorldPosition = serializer.GetDataItem<Vector2>("world-position");
            Rotation = serializer.GetDataItem<float>("rotation");
            Scale = serializer.GetDataItem<float>("scale");
            Mirror = serializer.GetDataItem<bool>("mirror");
            Tint = serializer.GetDataItem<Color>("tint");
            RenderDepth = serializer.GetDataItem<float>("render-depth");
            RenderLayer = serializer.GetDataItem<int>("render-layer");
            Visible = serializer.GetDataItem<bool>("visible");

            return serializer;
        }
Exemplo n.º 31
0
        /// <summary>
        /// 解析WebApi的请求。
        /// </summary>
        /// <param name="context">http上下文</param>
        private void ResolveWebApiEx(HttpContext context)
        {
            HttpRequest request = context.Request;

            var nameSpace  = "Orm.Framework.Common";        //接口所在命名空间
            var className  = "WebAPI";                      //接口类名
            var methodName = request.QueryString["action"]; //.Form["action"]

            //methodName = "UpdateFollowInfo";

            Assembly assembly = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory + @"bin\" + nameSpace + ".dll");

            //   动态调用方法。
            object     eval   = assembly.CreateInstance(nameSpace + "." + className);
            MethodInfo method = eval.GetType().GetMethod(methodName);

            MethodDC    theContract = new MethodDC();
            ApiResultDC theResult   = new ApiResultDC();

            try
            {
                theContract.MethodName = methodName;
                #region 参数设置
                //获取反射方法的参数和参数的类型
                Dictionary <string, Type> dicParam  = new Dictionary <string, Type>();
                ParameterInfo[]           paramters = method.GetParameters();
                foreach (ParameterInfo item in paramters)
                {
                    dicParam.Add(item.Name, item.ParameterType);
                }
                //参数赋值
                List <ParameterDC> paramList = new List <ParameterDC>();
                foreach (var item in request.Form.AllKeys)
                {
                    string paramValue = request.Form[item].ToString();
                    if (dicParam[item].Name == "String")
                    {
                        paramValue = "\"" + paramValue + "\"";
                    }

                    paramList.Add(new ParameterDC {
                        JsonValue = paramValue, TypeQualifiedName = dicParam[item].FullName
                    });
                }
                //if (paramList.Count > 0)
                theContract.ParameterList = paramList;
                //else
                //{
                //    var p = new ParameterDC { JsonValue = "344", TypeQualifiedName = typeof(int).FullName };
                //    var p2 = new ParameterDC { JsonValue = "5", TypeQualifiedName = typeof(int).FullName };
                //    var p1 = new ParameterDC { JsonValue = "\"更新\"", TypeQualifiedName = typeof(string).FullName };
                //    var plist = new List<ParameterDC>();
                //    plist.Add(p);
                //    plist.Add(p2);
                //    plist.Add(p1);
                //    theContract.ParameterList = plist;
                //}

                if (paramters.Count() != theContract.ParameterList.Count)
                {
                    ReturnValue returnValue = new ReturnValue();
                    returnValue.ErrorCode = -1;
                    returnValue.ErrorMsg  = "参数个数不匹配";
                    var jsonResult = Serializer.Serialize(returnValue);
                    context.Response.Write(jsonResult);
                    return;
                }
                #endregion
                ApiCore apiCpre = new ApiCore(theContract);
                var     result  = apiCpre.Invoke(eval);

                if (result.ResultType.Name.ToLower() != "void")
                {
                    theResult.JsonValue         = Serializer.Serialize(result.ResultValue);
                    theResult.TypeQualifiedName = result.ResultType.AssemblyQualifiedName;
                    context.Response.Write(theResult.JsonValue);
                    //context.Response = theResult.JsonValue;
                }
                else
                {
                    theResult.JsonValue         = string.Empty;
                    theResult.TypeQualifiedName = result.ResultType.AssemblyQualifiedName;
                    ReturnValue returnValue = new ReturnValue();
                    returnValue.ErrorCode = -1;
                    returnValue.ErrorMsg  = "此接口方法没有返回值";
                    var jsonResult = Serializer.Serialize(returnValue);
                    context.Response.Write(jsonResult);
                    return;
                }
            }
            catch (Exception ex)
            {
                ReturnValue returnValue = new ReturnValue();
                returnValue.ErrorCode = -1;
                returnValue.ErrorMsg  = "接口调用异常:" + ex.Message;
                var jsonResult = Serializer.Serialize(returnValue);
                context.Response.Write(jsonResult);
            }
        }
Exemplo n.º 32
0
    /// <sumary>
    /// Instantiate the new Chart and load the editor scene
    /// </sumary>
    public void StartEditor(bool isEdit = false)
    {
        if (Serializer.Initialized)
        {
            if (Serializer.ChartData == null)
            {
                Chart chart        = new Chart();
                Beats defaultBeats = new Beats();
                defaultBeats.Easy   = new Dictionary <float, List <Note> >();
                defaultBeats.Normal = new Dictionary <float, List <Note> >();
                defaultBeats.Hard   = new Dictionary <float, List <Note> >();
                defaultBeats.Expert = new Dictionary <float, List <Note> >();
                defaultBeats.Master = new Dictionary <float, List <Note> >();
                defaultBeats.Custom = new Dictionary <float, List <Note> >();

                Effects defaultEffects = new Effects();
                defaultEffects.Easy   = new List <float>();
                defaultEffects.Normal = new List <float>();
                defaultEffects.Hard   = new List <float>();
                defaultEffects.Expert = new List <float>();
                defaultEffects.Master = new List <float>();
                defaultEffects.Custom = new List <float>();

                Jumps defaultJumps = new Jumps();
                defaultJumps.Easy   = new List <float>();
                defaultJumps.Normal = new List <float>();
                defaultJumps.Hard   = new List <float>();
                defaultJumps.Expert = new List <float>();
                defaultJumps.Master = new List <float>();
                defaultJumps.Custom = new List <float>();

                Crouchs defaultCrouchs = new Crouchs();
                defaultCrouchs.Easy   = new List <float>();
                defaultCrouchs.Normal = new List <float>();
                defaultCrouchs.Hard   = new List <float>();
                defaultCrouchs.Expert = new List <float>();
                defaultCrouchs.Master = new List <float>();
                defaultCrouchs.Custom = new List <float>();

                Slides defaultSlides = new Slides();
                defaultSlides.Easy   = new List <Slide>();
                defaultSlides.Normal = new List <Slide>();
                defaultSlides.Hard   = new List <Slide>();
                defaultSlides.Expert = new List <Slide>();
                defaultSlides.Master = new List <Slide>();
                defaultSlides.Custom = new List <Slide>();

                Lights defaultLights = new Lights();
                defaultLights.Easy   = new List <float>();
                defaultLights.Normal = new List <float>();
                defaultLights.Hard   = new List <float>();
                defaultLights.Expert = new List <float>();
                defaultLights.Master = new List <float>();
                defaultLights.Custom = new List <float>();

                /// For testing

                /*var list = new List<Note>();
                 * list.Add(new Note(new Vector3(-0.5756355f, 0.2400601f, 0), 1));
                 * defaultBeats.Easy.Add(0, list);
                 * list = new List<Note>();
                 * list.Add(new Note(new Vector3(-0.7826607f, 0.3006552f, 20f), 2002));
                 * defaultBeats.Easy.Add(2000, list);
                 * list = new List<Note>();
                 * list.Add(new Note(new Vector3(0.1514833f, 0.3359979f, 40f), 4001));
                 * defaultBeats.Easy.Add(4000, list);	*/

                chart.Track                 = defaultBeats;
                chart.Effects               = defaultEffects;
                chart.Jumps                 = defaultJumps;
                chart.Crouchs               = defaultCrouchs;
                chart.Slides                = defaultSlides;
                chart.Bookmarks             = new Bookmarks();
                chart.Name                  = nameField.text;
                chart.Author                = authorField.text;
                chart.AudioName             = trackField.text;
                chart.AudioData             = null;     //audioData;
                chart.AudioFrecuency        = loadedClip.frequency;
                chart.AudioChannels         = loadedClip.channels;
                chart.BPM                   = 120;
                chart.FilePath              = null;
                chart.Artwork               = artWorkField;
                chart.ArtworkBytes          = loadedArtwork;
                chart.IsAdminOnly           = Serializer.IsAdmin();
                chart.Beatmapper            = mapperField.text;
                chart.CustomDifficultyName  = "Custom";
                chart.CustomDifficultySpeed = 1;
                chart.Tags                  = new List <string>();
                chart.Lights                = defaultLights;

                Serializer.ChartData = chart;
            }

            if (artworkEdited)
            {
                Serializer.ChartData.Artwork      = artWorkField;
                Serializer.ChartData.ArtworkBytes = loadedArtwork;
            }

            if (audioEdited)
            {
                // Serializer.ChartData.AudioData = audioData;
                Serializer.ChartData.AudioFrecuency = loadedClip.frequency;
                Serializer.ChartData.AudioChannels  = loadedClip.channels;
            }

            if (isEdit)
            {
                Serializer.ChartData.Name       = editNameField.text;
                Serializer.ChartData.Author     = editAuthorField.text;
                Serializer.ChartData.AudioName  = editTrackField.text;
                Serializer.ChartData.Beatmapper = editMapperField.text;
            }
            // Complete editor process
            // Serializer.SerializeToFile();
            Miku_LoaderHelper.LauchPreloader();
        }
    }
Exemplo n.º 33
0
    private void LoadAudioChart(string absoluteUri, bool isJSON = false)
    {
        if (Serializer.Initialized)
        {
            // bool fileLoadSuccess = Serializer.LoadFronFile(absoluteUri, isJSON, absoluteUri.Contains(".dat"));
            bool fileLoadSuccess = isJSON ? Serializer.LoadFronFile(absoluteUri, isJSON, absoluteUri.Contains(".dat")) : Serializer.LoadFronFile(absoluteUri);
            if (fileLoadSuccess)
            {
                editPanelAnimator.Play("Panel In");
                editModePanelAnimator.Play("Panel Out");

                editNameField.text   = Serializer.ChartData.Name;
                editAuthorField.text = Serializer.ChartData.Author;
                editTrackField.text  = (Serializer.ChartData.AudioData != null) ? string.Empty : Serializer.ChartData.AudioName;
                editMapperField.text = Serializer.ChartData.Beatmapper;
                if (!isJSON)
                {
                    Serializer.ChartData.FilePath = absoluteUri;
                }

                // For the artwork texture
                if (Serializer.ChartData.ArtworkBytes == null)
                {
                    Serializer.ChartData.Artwork      = "Default Artwork";
                    Serializer.ChartData.ArtworkBytes = defaultArtworkData;
                }

                SetSpriteToImage(editArtworkField, Serializer.ChartData.ArtworkBytes);

                // If not has effect data
                if (Serializer.ChartData.Effects == null)
                {
                    Effects defaultEffects = new Effects();
                    defaultEffects.Easy   = new List <float>();
                    defaultEffects.Normal = new List <float>();
                    defaultEffects.Hard   = new List <float>();
                    defaultEffects.Expert = new List <float>();
                    defaultEffects.Master = new List <float>();
                    defaultEffects.Custom = new List <float>();

                    Serializer.ChartData.Effects = defaultEffects;
                }

                if (Serializer.ChartData.Jumps == null)
                {
                    Jumps defaultJumps = new Jumps();
                    defaultJumps.Easy   = new List <float>();
                    defaultJumps.Normal = new List <float>();
                    defaultJumps.Hard   = new List <float>();
                    defaultJumps.Expert = new List <float>();
                    defaultJumps.Master = new List <float>();
                    defaultJumps.Custom = new List <float>();

                    Serializer.ChartData.Jumps = defaultJumps;
                }

                if (Serializer.ChartData.Crouchs == null)
                {
                    Crouchs defaultCrouchs = new Crouchs();
                    defaultCrouchs.Easy   = new List <float>();
                    defaultCrouchs.Normal = new List <float>();
                    defaultCrouchs.Hard   = new List <float>();
                    defaultCrouchs.Expert = new List <float>();
                    defaultCrouchs.Master = new List <float>();
                    defaultCrouchs.Custom = new List <float>();

                    Serializer.ChartData.Crouchs = defaultCrouchs;
                }

                if (Serializer.ChartData.Slides == null)
                {
                    Slides defaultSlides = new Slides();
                    defaultSlides.Easy   = new List <Slide>();
                    defaultSlides.Normal = new List <Slide>();
                    defaultSlides.Hard   = new List <Slide>();
                    defaultSlides.Expert = new List <Slide>();
                    defaultSlides.Master = new List <Slide>();
                    defaultSlides.Custom = new List <Slide>();

                    Serializer.ChartData.Slides = defaultSlides;
                }

                if (Serializer.ChartData.Lights == null)
                {
                    Lights defaultLights = new Lights();
                    defaultLights.Easy   = new List <float>();
                    defaultLights.Normal = new List <float>();
                    defaultLights.Hard   = new List <float>();
                    defaultLights.Expert = new List <float>();
                    defaultLights.Master = new List <float>();
                    defaultLights.Custom = new List <float>();

                    Serializer.ChartData.Lights = defaultLights;
                }

                if (Serializer.ChartData.Bookmarks == null)
                {
                    Serializer.ChartData.Bookmarks = new Bookmarks();
                }

                InitFormsSelection(true);
            }
        }
    }
Exemplo n.º 34
0
 public void Serialize<T>(Stream dest, T value)
 {
     Serializer.Serialize<T>(dest, value);
 }
Exemplo n.º 35
0
        public void go(string[] args)
        {
            //    AutoActivate.activate(driverProc);
            driverSerializer = driverProc.NewSerializer();
            //testSuiteDir = args[0];

            Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));

            testSuiteDir = args[0];
            if (testSuiteDir.EndsWith("/"))
            {
                testSuiteDir = testSuiteDir.Substring(0, testSuiteDir.Length - 1);
            }


            resultsDir = args[1];
            if (resultsDir.EndsWith("/"))
            {
                resultsDir = resultsDir.Substring(0, resultsDir.Length - 1);
            }
            string catalog = testSuiteDir + "/catalog.xml";
            string specStr = null;

            for (int i = 2; i < args.Length; i++)
            {
                if (args[i].StartsWith("-t:"))
                {
                    testPattern = new Regex(args[i].Substring(3));
                }
                if (args[i].StartsWith("-s:"))
                {
                    requestedTestSet = args[i].Substring(3);
                }
                if (args[i].StartsWith("-debug"))
                {
                    debug = true;
                }
                if (args[i].Equals("-unfolded"))
                {
                    unfolded = true;
                }
                if (args[i].Equals("-save"))
                {
                    saveResults = true;
                }
                if (args[i].StartsWith("-bytecode"))
                {
                    if (args[i].Substring(10).Equals("on"))
                    {
                        generateByteCode = 1;
                    }
                    else if (args[i].Substring(10).Equals("debug"))
                    {
                        generateByteCode = 2;
                    }
                    else
                    {
                        generateByteCode = 0;
                    }
                }

                /* if (args[i].StartsWith("-tree"))
                 * {
                 *   if (args[i].Substring(6).EqualsIgnoreCase("dom"))
                 *   {
                 *       treeModel = new DOMObjectModel();
                 *   }
                 *   else if (args[i].Substring(6).EqualsIgnoreCase("jdom"))
                 *   {
                 *       treeModel = new JDOMObjectModel();
                 *   }
                 *   else if (args[i].Substring(6).EqualsIgnoreCase("jdom2"))
                 *   {
                 *       treeModel = new JDOM2ObjectModel();
                 *   }
                 *   else if (args[i].Substring(6).EqualsIgnoreCase("dom4j"))
                 *   {
                 *       treeModel = new DOM4JObjectModel();
                 *   }
                 *   else if (args[i].Substring(6).EqualsIgnoreCase("xom"))
                 *   {
                 *       treeModel = new XOMObjectModel();
                 *   }
                 *   else if (args[i].Substring(6).EqualsIgnoreCase("axiom"))
                 *   {
                 *       treeModel = new AxiomObjectModel();
                 *   }
                 *   else if (args[i].Substring(6).EqualsIgnoreCase("tinytree"))
                 *   {
                 *       treeModel = TreeModel.TINY_TREE;
                 *   }
                 *   else if (args[i].Substring(6).EqualsIgnoreCase("condensed"))
                 *   {
                 *       treeModel = TreeModel.TINY_TREE_CONDENSED;
                 *   }
                 *   else if (args[i].Substring(6).EqualsIgnoreCase("linked"))
                 *   {
                 *       treeModel = TreeModel.LINKED_TREE;
                 *   }
                 *   else
                 *   {
                 *       throw new Exception("The TreeModel specified does not exist");
                 *   }
                 * }*/
                if (args[i].StartsWith("-lang"))
                {
                    specStr = args[i].Substring(6);
                    processSpec(specStr);
                }

                // Temporary for controlling test processor
                if (args[i].StartsWith("-xt30"))
                {
                    if (args[i].Substring(6).Equals("on"))
                    {
                        useXslt30Transformer = true;
                    }
                    else if (args[i].Substring(6).Equals("off"))
                    {
                        useXslt30Transformer = false;
                    }
                }
            }
            if (resultsDir == null)
            {
                feedback.Message("No results directory specified (use -o:dirname)", true);

                /*if (guiForm == null)
                 * {
                 *  System.exit(2);
                 * }*/
            }
            if (resultsDoc == null)
            {
                feedback.Message("No results document specified (use -lang option)", true);

                /*if (guiForm == null)
                 * {
                 *  System.exit(2);
                 * }*/
            }

            driverSerializer.SetOutputStream(System.Console.OpenStandardError());
            driverSerializer.SetOutputProperty(Serializer.OMIT_XML_DECLARATION, "yes");
            processCatalog(catalog);
            printResults(resultsDir + "/results" + driverProc.ProductVersion + ".xml");
        }
Exemplo n.º 36
0
 public void СериализацияProtoBuf(Stream Поток)
 {
     Serializer.Serialize(Поток, this);
 }
Exemplo n.º 37
0
        /// <summary>
        /// 解析WebApi的请求。
        /// </summary>
        /// <param name="context">http上下文</param>
        private void ResolveWebApi(HttpContext context)
        {
            var watch = new System.Diagnostics.Stopwatch();

            watch.Start();
            Stream       streamResponse = context.Request.InputStream;
            StreamReader streamRead     = new StreamReader(streamResponse, Encoding.UTF8);
            string       strResponse    = streamRead.ReadToEnd();

            streamResponse.Close();
            streamRead.Close();
            MethodDC    theContract = new MethodDC();
            ApiResultDC theResult   = new ApiResultDC();

            try
            {
                theContract = Serializer.Deserialize <MethodDC>(strResponse);
                ApiCore apiCpre = new ApiCore(theContract);
                var     result  = apiCpre.Invoke();

                if (result.ResultType.Name.ToLower() != "void")
                {
                    theResult.JsonValue         = Serializer.Serialize(result.ResultValue);
                    theResult.TypeQualifiedName = result.ResultType.AssemblyQualifiedName;
                }
                else
                {
                    theResult.JsonValue         = string.Empty;
                    theResult.TypeQualifiedName = result.ResultType.AssemblyQualifiedName;
                }
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null && ex.InnerException is Orm.Utilities.InformationException)
                {
                    theResult.HasException     = true;
                    theResult.ExceptionMessage = ex.InnerException.Message;
                    theResult.ExceptionState   = 1;
                }
                else if (ex.InnerException is Orm.Utilities.WarningException)
                {
                    theResult.HasException     = true;
                    theResult.ExceptionMessage = ex.InnerException.Message;
                    theResult.ExceptionState   = 2;
                }
                else if (ex.InnerException is Orm.Utilities.ErrorException)
                {
                    theResult.HasException     = true;
                    theResult.ExceptionMessage = ex.InnerException.Message;
                    theResult.ExceptionState   = 2;
                }
                else
                {
                    theResult.HasException     = true;
                    theResult.ExceptionMessage = ex.InnerException == null ? ex.Message : ex.InnerException.Message;
                    theResult.ExceptionStack   = ex.InnerException == null ? ex.StackTrace : ex.InnerException.StackTrace;
                }

                //Orm.Framework.Services.AppLogger.Log(ex.InnerException == null ? ex.Message : ex.InnerException.Message + "\r\n" + ex.StackTrace);
                StringBuilder errLog = new StringBuilder();
                if (strResponse.Length > 500)
                {
                    errLog.Append(strResponse.Substring(0, 500));
                }
                else
                {
                    errLog.Append(strResponse);
                }
                Orm.Framework.Services.AppLogger.Log(ex.InnerException == null ? "\r\n\r\n" + ex.Message + "\r\n\r\n" + ex.StackTrace + "\r\n\r\n" + errLog.ToString() : "\r\n\r\n" + ex.InnerException.Message + "\r\n\r\n" + ex.InnerException.StackTrace + "\r\n\r\n" + errLog.ToString());
            }
            finally
            {
                //Orm.Redis.RedisAudit redis = new Orm.Redis.RedisAudit() { ClientIP = context.Request.UserHostAddress, ServiceName = theContract.InterfaceName, MethodName = theContract.MethodName, RequestTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), ElapsedTime = watch.ElapsedMilliseconds.ToString(), RequestArguments = JsonConvert.SerializeObject(theContract.ParameterList), Result = JsonConvert.SerializeObject(theResult) };
                //TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                //Orm.Redis.RedisHelper.SetAsync(redis.ServiceName + "," + redis.MethodName + "," + redis.ClientIP + "," + redis.RequestTime + "," + Convert.ToInt64(ts.TotalSeconds).ToString(), JsonConvert.SerializeObject(redis), 3 * 60 * 60);
            }
            theContract.Result = theResult;
            string jsonResult = Serializer.Serialize(theContract);

            context.Response.Write(jsonResult);

            //如果返回的数据大点则采用GZip压缩。
            if (jsonResult.Length > 10000)
            {
                //向输出流头部添加压缩信息
                context.Response.AppendHeader("Content-encoding", "gzip");
                context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
            }

            watch.Stop();
            //写请求日志,用于跟踪请求的时间和数据大小。
            if (watch.ElapsedMilliseconds > 2000)
            {
                StringBuilder errLog = new StringBuilder();
                if (strResponse.Length > 500)
                {
                    errLog.Append(strResponse.Substring(0, 500));
                }
                else
                {
                    errLog.Append(strResponse);
                }
                string strRequestTimeLog = string.Format("Url:{0} 大于2秒:{1} JSON:{2}", context.Request.Url.ToString(), watch.ElapsedMilliseconds.ToString(), errLog);
                //  Orm.Framework.Services.AppLogger.Log(strRequestTimeLog, @"D:\PerformanceLog\" + DateTime.Now.ToString("yyyyMMdd"), AppDomain.CurrentDomain.Id.ToString() + ".log");
                strRequestTimeLog = null;
            }

            //如果是大对象85000的10倍
            if (System.Text.Encoding.Default.GetByteCount(jsonResult) > 840000)
            {
                StringBuilder errLog = new StringBuilder();
                if (strResponse.Length > 500)
                {
                    errLog.Append(strResponse.Substring(0, 500));
                }
                else
                {
                    errLog.Append(strResponse);
                }
                //向输出流头部添加压缩信息
                // Orm.Framework.Services.AppLogger.Log(string.Format("Url:{0} 大于850K的对象:{1}", context.Request.Url.ToString(), errLog), @"D:\PerformanceLog\" + DateTime.Now.ToString("yyyyMMdd"), AppDomain.CurrentDomain.Id.ToString() + ".log");
            }
            jsonResult  = null;
            strResponse = null;
        }
Exemplo n.º 38
0
 public static void SavePlugins(string filename)
 {
     Serializer.Serialize(filename, Addins);
 }
Exemplo n.º 39
0
        public void TestNakedNullableEnumDeserialize()
        {
            Foo?foo = Serializer.Deserialize <Foo?>(Stream.Null);

            Assert.Null(foo);
        }
Exemplo n.º 40
0
 public static List <Addin> LoadPlugins(string filename)
 {
     return(Serializer.Deserialize <List <Addin> >(filename));
 }
Exemplo n.º 41
0
        public void TestNakedNullableInt32Deserialize()
        {
            int?i = Serializer.Deserialize <int?>(Stream.Null);

            Assert.Null(i);
        }
Exemplo n.º 42
0
 public void Serialize(Serializer serializer)
 {
     serializer.Write(Header);
     serializer.WriteVarint(this.Unknown0);
 }
 private static void ConfigureSerializer(HttpRequestConfiguration httpRequestConfiguration)
 {
     _serializer = httpRequestConfiguration.RequestContentType.Contains("xml")
         ? new Serializer(FhirSerializer.SerializeToXml)
         : FhirSerializer.SerializeToJson;
 }
Exemplo n.º 44
0
        public void TestWrappedNullableEnumDeserialize()
        {
            Bar bar = Serializer.Deserialize <Bar>(Stream.Null);

            Assert.Null(bar.Foo);
        }
Exemplo n.º 45
0
 public override bool CanSerialize(Serializer serializer, Type type) =>
 type.FullName.StartsWith("Microsoft.FSharp.Collections.FSharpMap`2");
Exemplo n.º 46
0
 /// <summary>
 /// Serialize the value to yaml string.
 /// </summary>
 /// <param name="value"></param>
 /// <returns></returns>
 public static string ToYaml(object?value) =>
 Serializer.Serialize(value);
Exemplo n.º 47
0
 public override bool CanDeserialize(Serializer serializer, Type type)
 {
     return(CanSerialize(serializer, type));
 }
Exemplo n.º 48
0
 public override bool CanDeserialize(Serializer serializer, Type type) =>
 CanSerialize(serializer, type);
Exemplo n.º 49
0
        private void SavePersonalFormValues()
        {
            var yaml = new Serializer().Serialize(new PersonalFormValues(DataExcelsDirectoryPath, TemplateExcelsDirectoryPath));

            File.WriteAllText(PersonalFormValuesPath, yaml);
        }
Exemplo n.º 50
0
        public override ValueSerializer BuildSerializer(Serializer serializer, Type type,
                                                        ConcurrentDictionary <Type, ValueSerializer> typeMapping)
        {
            var os = new ObjectSerializer(type);

            typeMapping.TryAdd(type, os);
Exemplo n.º 51
0
 public void SetUp()
 {
     serializer = new Serializer(new PropertiesExtractor());
 }
Exemplo n.º 52
0
 public override bool CanSerialize(Serializer serializer, Type type)
 {
     return(type.IsSubclassOf(typeof(PropertyInfo)));
 }
Exemplo n.º 53
0
 public int SerializedSize()
 {
     return Serializer.SerializedSize(this as IAutoSerializable);
 }
Exemplo n.º 54
0
        private void SaveFormValues()
        {
            var yaml = new Serializer().Serialize(new FormValues(SeedPath, SettingPath));

            File.WriteAllText(FormValuesPath, yaml);
        }
Exemplo n.º 55
0
 public byte[] Serialize()
 {
     return Serializer.Serialize(this as IAutoSerializable);
 }
Exemplo n.º 56
0
 public Header CreateHeader()
 {
     return Serializer.CreateHeader(this as IAutoSerializable);
 }
Exemplo n.º 57
0
        public static void UploadGroupPicByTCP(long sendQQ, long GroupId, byte[] uKey, string Ip, int Port)
        {
            var TcpClient = new TCPIPClient(Ip, Port);

            byte[] SendBytes     = null;
            int    UploadLen     = 0;
            var    TempFileBytes = API.FileBytes;

            byte[] PBBytes = null;
            UploadGroupPicStruct UploadPicBytes = new UploadGroupPicStruct();

            while (TempFileBytes.Length > 0)
            {
                if (TempFileBytes.Length >= 8192)
                {
                    SendBytes = TempFileBytes.Take(8192).ToArray();
                }
                else
                {
                    SendBytes = TempFileBytes;
                }
                UploadPicBytes = new UploadGroupPicStruct
                {
                    UploadGroupPicSendInfo = new UploadGroupPicSendInfos
                    {
                        amout    = 1,
                        sendQQ   = sendQQ.ToString(),
                        SendCmd  = "PicUp.DataUp",
                        RaqId    = (new Random()).Next(90000, 99999),
                        field5   = 0,
                        appId    = 537061440,
                        sendSize = 4096,
                        flag     = 2
                    },
                    UploadGroupPicFileInfo = new UploadGroupPicFileInfos
                    {
                        fileSize     = API.FileBytes.Length,
                        uploadSize   = UploadLen,
                        sendSize     = SendBytes.Length,
                        uKey         = uKey,
                        sendFileHash = API.MD5Hash(SendBytes),
                        TotalHash    = API.FileHash
                    }
                };
                using (var ms = new MemoryStream())
                {
                    Serializer.Serialize(ms, UploadPicBytes);
                    Debug.Print("上传群图片:" + "\r\n" + BitConverter.ToString(ms.ToArray()).Replace("-", " "));
                    PBBytes = ms.ToArray();
                }

                var bytes = new byte[] { 0x28 };
                bytes = bytes.Concat(BitConverter.GetBytes(PBBytes.Length).Reverse().ToArray()).ToArray();
                bytes = bytes.Concat(BitConverter.GetBytes(SendBytes.Length).Reverse().ToArray()).ToArray();
                bytes = bytes.Concat(PBBytes).ToArray();
                bytes = bytes.Concat(SendBytes).ToArray();
                bytes = bytes.Concat(new byte[] { 0x29 }).ToArray();
                Debug.Print("上传群图片打包:" + "\r\n" + BitConverter.ToString(bytes).Replace("-", " "));
                TcpClient.SendData(bytes);
                TempFileBytes = TempFileBytes.Skip(SendBytes.Length).ToArray();
                UploadLen     = UploadLen + SendBytes.Length;
            }
            Debug.Print("上传群图片完成.");
        }
Exemplo n.º 58
0
 public void Deserialize(byte[] buffer)
 {
     Serializer.Deserialize(this as IAutoSerializable, buffer);
 }
Exemplo n.º 59
0
        public static API.GroupWithdrawInfo ParsingGroupMsg(byte[] byteIn)
        {
            string TextMsg   = "";
            string FaceMsg   = "";
            string HotPicMsg = "";
            string PicMsg    = "";
            string AudioMsg  = "";
            string VideoMsg  = "";
            string ReplyMsg  = "";
            var    byteLen   = BitConverter.ToInt32(byteIn.Take(4).ToArray().Reverse().ToArray(), 0);

            byteIn = byteIn.Skip(4).ToArray();
            using (MemoryStream ms = new MemoryStream(byteIn))
            {
                try
                {
                    var    result    = Serializer.Deserialize <GroupMsgStuct>(ms);
                    long   QQId      = result.GroupInfo.GroupQQInfo.thisQQId;
                    long   QQFromId  = result.GroupInfo.GroupQQInfo.QQFromId;
                    long   GroupId   = result.GroupInfo.GroupQQInfo.GroupInfo.GroupId;
                    string GroupName = result.GroupInfo.GroupQQInfo.GroupInfo.GroupName;
                    API.GroupWithdraw.MsgReqId    = result.GroupInfo.GroupQQInfo.fromReq;
                    API.GroupWithdraw.MsgRandomId = result.GroupInfo.GroupMessageInfo.GroupMsgInfo.FontInfo.fromRandom;
                    if (QQId == QQFromId)
                    {
                        return(API.GroupWithdraw);
                    }
                    var msgByte = result.GroupInfo.GroupMessageInfo.GroupMsgInfo.GroupMsgContent;
                    Debug.Print("群消息内容:" + "\r\n" + BitConverter.ToString(msgByte).Replace("-", " "));
                    using (MemoryStream mStream = new MemoryStream(msgByte))
                    {
                        var MsgResult = Serializer.Deserialize <GroupMessageStruct>(mStream);
                        API.NickName = MsgResult.SendNick.NickName;
                        if (MsgResult.GroupFileMessage != null)                         //有文件上传的消息
                        {
                            var FileHash = MsgResult.GroupFileMessage.FileHash;
                        }
                        if (MsgResult.GroupReplyMessage != null)                         //是带回复的消息
                        {
                            string replyContent = "";
                            for (var i = 0; i < MsgResult.GroupReplyMessage.OldMsgContent.Count; i++)
                            {
                                replyContent = replyContent + MsgResult.GroupReplyMessage.OldMsgContent[i].content.Replace("\n", "").Replace("\r", "").Replace("\r\n", "");
                            }
                            ReplyMsg = " [Reply=@" + MsgResult.GroupReplyMessage.thisQQId.ToString() + "内容:" + replyContent + "]";
                        }
                        if (MsgResult.GroupTextMsgContent != null)                         //有文本或小表情或热图内容
                        {
                            for (var i = 0; i < MsgResult.GroupTextMsgContent.Count; i++)
                            {
                                TextMsg = TextMsg + MsgResult.GroupTextMsgContent[i].content;
                            }
                        }
                        if (MsgResult.BigFace != null)                         //有大表情内容
                        {
                            for (var i = 0; i <= MsgResult.BigFace.Count; i++)
                            {
                                var FaceId = MsgResult.BigFace[i].FaceId;
                                FaceMsg = FaceMsg + " [BigFaceId=" + FaceId.ToString() + "]";
                            }
                        }
                        if (MsgResult.GroupPicMessageContent != null)                         //有图片内容
                        {
                            for (var i = 0; i < MsgResult.GroupPicMessageContent.Count; i++)
                            {
                                PicMsg = PicMsg + "https://gchat.qpic.cn" + MsgResult.GroupPicMessageContent[i].PicAddr1.Substring(0, MsgResult.GroupPicMessageContent[i].PicAddr1.LastIndexOf("/")) + "/0 ";
                            }
                            PicMsg = "[pic,link=" + PicMsg + "]";
                        }
                        if (result.GroupInfo.GroupMessageInfo.GroupMsgInfo.GroupAudioMsgContent != null)                         //有语音内容
                        {
                            using (MemoryStream msStream = new MemoryStream(result.GroupInfo.GroupMessageInfo.GroupMsgInfo.GroupAudioMsgContent))
                            {
                                var Ret = Serializer.Deserialize <AudioMessageStruct>(msStream);
                                AudioMsg = "[Audio,link=" + "http://grouptalk.c2c.qq.com" + Ret.AudioUrl;
                            }
                        }
                        if (MsgResult.GroupVideoMessageContent != null)                         //有视频内容
                        {
                            for (var i = 0; i < MsgResult.GroupVideoMessageContent.Count; i++)
                            {
                                VideoMsg = VideoMsg + "[video,guid=" + MsgResult.GroupVideoMessageContent[i].VideoGuid + "]";
                            }
                        }
                    }
                    SDK.GetResult(GroupId.ToString(), QQFromId.ToString(), "[" + GroupName + "]" + ReplyMsg + FaceMsg + HotPicMsg + TextMsg + PicMsg + AudioMsg + VideoMsg);
                    var MsgSeq = result.GroupInfo.GroupQQInfo.fromReq;
                    MakeReadedGroupMsg(GroupId, MsgSeq);
                }
                catch (Exception ex)
                {
                    Debug.Print(ex.Message.ToString());
                }
            }
            return(API.GroupWithdraw);
        }
Exemplo n.º 60
0
        public static API.GroupWithdrawInfo SendGroupAudio(byte[] BytesIn, byte[] filekey)
        {
            var timestamp = long.Parse(Convert.ToInt64(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds).ToString().Substring(0, 10));
            List <SendMessages> MsgList = new List <SendMessages>();

            BytesIn = BytesIn.Skip(4).ToArray();
            using (var ms = new MemoryStream(BytesIn))
            {
                var result            = Serializer.Deserialize <GroupAudioHashStruct>(ms);
                var sAddr             = API.Int32ToIP(result.GroupAudioHashInfo.IP);
                var Port              = result.GroupAudioHashInfo.Port;
                var uKey              = result.GroupAudioHashInfo.ukey;
                var token             = result.GroupAudioHashInfo.token;
                SendGroupMsgInfos msg = new SendGroupMsgInfos
                {
                    SendGroupMsg = new SendGroupMsgs
                    {
                        SendGroupAudioInfo = new SendGroupAudioInfos
                        {
                            Field1 = 4, AudioHash = filekey, AudioName = BitConverter.ToString(filekey).Replace("-", "") + ".amr", AudioSize = 4590, uKey = new byte[] { 0x16, 0x36, 0x20, 0x38, 0x36, 0x65, 0x41, 0x31, 0x4, 0x34, 0x38, 0x36, 0x34, 0x63, 0x32, 0x33, 0x63, 0x62, 0x34, 0x61, 0x33, 0x31, 0x36, 0x31, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x1A, 0x88, 0xF9, 0x2C, 0x88, 0x4D, 0xB1, 0xF5, 0xC, 0xB1, 0x5B, 0x33, 0xF8, 0xFA, 0x10, 0x6D, 0x31, 0x41, 0x38, 0x38, 0x46, 0x39, 0x32, 0x43, 0x38, 0x38, 0x34, 0x44, 0x42, 0x31, 0x46, 0x35, 0x30, 0x43, 0x42, 0x31, 0x35, 0x42, 0x33, 0x33, 0x46, 0x38, 0x46, 0x41, 0x31, 0x30, 0x36, 0x44, 0x2E, 0x61, 0x6D, 0x72, 0x41 },
                            IP     = 1214562876, Field9 = 3030586896, Port = 80, Field11 = 1, token = token, Field19 = 0, AudioUrl = "/?ver=0&rkey=3062020101045b3059020101020101020416525dfe042439306a33676f4e4551795062466248363843666238536b49525067497264332357336872020457f8edde041f0000000866696c6574797065000000013100000005636f64656300000001310400&filetype=1&voice_codec=1", Field29 = 1, Field30 = new AudioUnKnownInfos {
                                Field1 = 0
                            }
                        }
                    }
                };

                SendGroupMsgStuct SendGroupMessage = new SendGroupMsgStuct
                {
                    GroupInformation = new GroupInformations
                    {
                        GroupFrom = new GroupFroms {
                            GroupId = API.GroupId
                        }
                    },
                    GroupMsgId       = new byte[] { 8, 1, 0x10, 0, 0x18, 0 },
                    SendGroupMsgInfo = msg,
                    MsgReqId         = API.QQ.mRequestID,
                    MsgRandomId      = 0x10000000 + API.QQ.mRequestID,
                    Groupcount       = 1
                };
                API.GroupWithdraw.MsgReqId    = API.QQ.mRequestID;
                API.GroupWithdraw.MsgRandomId = SendGroupMessage.MsgRandomId;
                using (var mStream = new MemoryStream())
                {
                    Serializer.Serialize(mStream, SendGroupMessage);
                    Debug.Print("发送群语音消息:" + mStream.ToArray().Length.ToString() + "\r\n" + BitConverter.ToString(mStream.ToArray()).Replace("-", " "));
                    var SendBytes = API.PackCmdHeader("MessageSvc.PbSendMsg", mStream.ToArray());
                    API.TClient.SendData(API.PackAllHeader(SendBytes));
                }

                //上传群语音
                //var url = "http://" + sAddr + "/?ver=4679&ukey=" + BitConverter.ToString(uKey).Replace("-", "") + "&filekey=" + BitConverter.ToString(filekey).Replace("-", "") + "&filesize=" + fileSize.ToString() + "&range=0&bmd5=" + BitConverter.ToString(filekey).Replace("-", "") + "&mType=pttGu&Audio_codec=1";
                //Dictionary<string, object> Headerdics = new Dictionary<string, object>()
                //{
                //	{"Accept-Encoding", "identity"},
                //	{"User-Agent", "Dalvik/2.1.0 (Linux; U; Android 5.0; SM-G9009D Build/LRX21T"},
                //	{"Content-Type", "application/x-www-form-urlencoded"},
                //	{"Host", sAddr}
                //};
                //var res = HttpClientPostAsync2(url, Headerdics, fileByte, "application/x-www-form-urlencoded", mycookiecontainer, RedirectUrl).Result;
            }

            return(API.GroupWithdraw);
        }