private GravatarParameter GetParameterFromXml(XContainer memberXml) { var par = new GravatarParameter(); // set name var nameElm = memberXml.Element(GravatarConstants.XML_NAME); if (nameElm != null) { par.Name = nameElm.Value; } // set value var valType = memberXml.Element(GravatarConstants.XML_VALUE).Elements().First(); if (valType.Name == GravatarConstants.XML_STRUCT) { par.Type = GravatarParType.Struct; par.StructValue = new GravatarStruct { Parameters = GetGravatarXmlMembers(valType) }; } else if (valType.Name == GravatarConstants.XML_ARRAY) { par.Type = GravatarParType.Array; par.ArrayValue = from value in valType.Descendants(GravatarConstants.XML_VALUE) select GetParameterFromXml(value); } else if (valType.Name == GravatarConstants.XML_INT) { par.Type = GravatarParType.Integer; par.IntegerValue = int.Parse(valType.Value); } else if (valType.Name == GravatarConstants.XML_STRING) { par.Type = GravatarParType.String; par.StringValue = valType.Value; } else if (valType.Name == GravatarConstants.XML_BOOL || valType.Name == GravatarConstants.XML_BOOLEAN) { par.Type = GravatarParType.Bool; if (valType.Value == "1") { par.BooleanValue = true; } else if (valType.Value == "0") { par.BooleanValue = false; } else { par.BooleanValue = bool.Parse(valType.Value); } } return(par); }
private GravatarServiceRequest GetUserImagesMethodRequest() { return(new GravatarServiceRequest { Email = Email, MethodName = GravatarConstants.METHOD_USER_IMAGES, Parameters = new List <GravatarParameter> { GravatarParameter.NewStringParamter(ParPassword, Password) } }); }
private GravatarServiceRequest GetAddressesMethodRequest() { return(new GravatarServiceRequest { Email = Email, MethodName = GravatarConstants.METHOD_ADDRESSES, Parameters = new List <GravatarParameter> { GravatarParameter.NewStringParamter(ParPassword, Password) } }); }
private GravatarServiceRequest GetDeleteImageMethodRequest(string userImage) { return(new GravatarServiceRequest { Email = Email, MethodName = GravatarConstants.METHOD_DELETE_USER_IMAGE, Parameters = new List <GravatarParameter> { GravatarParameter.NewStringParamter(ParUserImage, userImage), GravatarParameter.NewStringParamter(ParPassword, Password) } }); }
private GravatarServiceRequest GetExistsMethodRequest(IEnumerable <string> addresses, bool alreadyHashed = false) { return(new GravatarServiceRequest { Email = Email, MethodName = GravatarConstants.METHOD_EXISTS, Parameters = new List <GravatarParameter> { GravatarParameter.NewArrayParameter(ParHashes, addresses.Select(adr => GravatarParameter.NewStringParamter(String.Empty, alreadyHashed ? adr : HashEmailAddress(adr)))), GravatarParameter.NewStringParamter(ParPassword, Password) } }); }
private GravatarServiceRequest GetUseUserImagesMethodRequest(string userImage, IEnumerable <string> addresses) { return(new GravatarServiceRequest { Email = Email, MethodName = GravatarConstants.METHOD_USE_USER_IMAGE, Parameters = new List <GravatarParameter> { GravatarParameter.NewStringParamter(ParUserImage, userImage), GravatarParameter.NewArrayParameter(ParAddresses, addresses.Select(adr => GravatarParameter.NewStringParamter(String.Empty, adr))), GravatarParameter.NewStringParamter(ParPassword, Password) } }); }
private GravatarServiceRequest GetSaveUrlMethodRequest(string url, GravatarImageRating rating) { return(new GravatarServiceRequest { Email = Email, MethodName = GravatarConstants.METHOD_SAVE_URL, Parameters = new List <GravatarParameter> { GravatarParameter.NewStringParamter(ParUrl, url), GravatarParameter.NewIntegerParameter(ParRating, (int)rating), GravatarParameter.NewStringParamter(ParPassword, Password) } }); }
private GravatarServiceRequest GetSaveDataMethodRequest(byte[] data, GravatarImageRating rating) { return(new GravatarServiceRequest { Email = Email, MethodName = GravatarConstants.METHOD_SAVE_DATA, Parameters = new List <GravatarParameter> { GravatarParameter.NewStringParamter(ParData, Convert.ToBase64String(data)), GravatarParameter.NewIntegerParameter(ParRating, (int)rating), GravatarParameter.NewStringParamter(ParPassword, Password) } }); }
private static void WriteGravatarRequestParam(XmlTextWriter writer, GravatarParameter par) { writer.WriteStartElement(GravatarConstants.XML_MEMBER); writer.WriteElementString(GravatarConstants.XML_NAME, par.Name); if (par.Type == GravatarParType.Array) { writer.WriteStartElement(GravatarConstants.XML_VALUE); writer.WriteStartElement(GravatarConstants.XML_ARRAY); writer.WriteStartElement(GravatarConstants.XML_DATA); foreach (var arrPar in par.ArrayValue) { writer.WriteStartElement(GravatarConstants.XML_VALUE); switch (arrPar.Type) { case GravatarParType.Bool: writer.WriteElementString(GravatarConstants.XML_BOOL, arrPar.StringValue); break; case GravatarParType.Integer: writer.WriteElementString(GravatarConstants.XML_INT, arrPar.StringValue); break; default: writer.WriteElementString(GravatarConstants.XML_STRING, arrPar.StringValue); break; } writer.WriteEndElement(); //value } writer.WriteEndElement(); //data writer.WriteEndElement(); //array writer.WriteEndElement(); //value } else { writer.WriteElementString(GravatarConstants.XML_VALUE, par.StringValue); } writer.WriteEndElement(); //member }