Serialize() public method

public Serialize ( ) : string
return string
Beispiel #1
0
        private StackData GetStackData(Guid associationId, bool noBeta = false)
        {
            StackData     stackData     = null;
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(StackData));

            // Check for existing flair
            var ctx           = new StackFlairDataContext(cfg.ConnectionStrings["DefaultConnectionString"].ConnectionString);
            var existingFlair = ctx.StackFlairs.Where(f => f.Guid == associationId).SingleOrDefault();

            if (existingFlair != null)
            {
                // Check for expiration
                DateTime storedTimestamp = existingFlair.Timestamp;
                DateTime expiryTimestamp = storedTimestamp.AddHours(Int32.Parse(ConfigurationManager.AppSettings["FlairDuration"]));
                if (expiryTimestamp > DateTime.Now)
                {
                    stackData = (StackData)xmlSerializer.Deserialize(new StringReader(existingFlair.Flair));
                }
                else
                {
                    stackData               = StackyWrapper.GetFlairData(associationId);
                    existingFlair.Flair     = stackData.Serialize();
                    existingFlair.Timestamp = DateTime.Now;
                    ctx.SubmitChanges();
                }
            }
            else
            {
                stackData = StackyWrapper.GetFlairData(associationId);
                ctx.StackFlairs.First();

                ctx.StackFlairs.InsertOnSubmit(new App_Data.StackFlair()
                {
                    Flair = stackData.Serialize(), Guid = associationId, Timestamp = DateTime.Now
                });
                ctx.SubmitChanges();
            }
            return(stackData);
        }