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);
        }
Esempio n. 2
0
 private GravatarServiceRequest GetUserImagesMethodRequest()
 {
     return(new GravatarServiceRequest {
         Email = Email,
         MethodName = GravatarConstants.METHOD_USER_IMAGES,
         Parameters = new List <GravatarParameter> {
             GravatarParameter.NewStringParamter(ParPassword, Password)
         }
     });
 }
Esempio n. 3
0
 private GravatarServiceRequest GetAddressesMethodRequest()
 {
     return(new GravatarServiceRequest {
         Email = Email,
         MethodName = GravatarConstants.METHOD_ADDRESSES,
         Parameters = new List <GravatarParameter> {
             GravatarParameter.NewStringParamter(ParPassword, Password)
         }
     });
 }
Esempio n. 4
0
 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)
         }
     });
 }
Esempio n. 5
0
 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)
         }
     });
 }
Esempio n. 6
0
 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)
         }
     });
 }
Esempio n. 7
0
 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)
         }
     });
 }
Esempio n. 8
0
 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)
         }
     });
 }
Esempio n. 9
0
        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
        }