Example #1
0
        public Dictionary<string, object> StorePin(PinModel pin, Dictionary<string, Stream> files, string accessToken)
        {
            Dictionary<string, object> retval = new Dictionary<string, object>();
            try
            {
                //instance handlers
                IDataHelper db = Container.getInstance("dataHelper").Resolve<IDataHelper>();
                IS3Helper s3 = Container.getInstance("s3Helper").Resolve<IS3Helper>();
                IFacebookHelper fb = Container.getInstance("facebookHelper").Resolve<IFacebookHelper>();

                //get facebook profile and friend list
                dynamic fbProfile = fb.GetUserHeadshot(accessToken);
                pin.OwnerID = fbProfile.id;
                pin.OwnerHeadshot = fbProfile.picture.data.url;
                pin.OwnerName = fbProfile.name;

                //insert db
                pin.LastSyncDate = DateTime.UtcNow.ToUnixTimestamp();
                db.StorePin(pin.GenerateToDictionary());

                //upload to S3
                foreach (var item in files)
                {
                    if (!s3.Upload(pin.OwnerID, item.Key, item.Value))
                    {
                        //return false;
                    }
                }
                retval.Add("state", true);
                retval.Add("message", "");

            }
            catch (Exception ext)
            {

                retval.Add("state", false);
                retval.Add("message", ext.Message);
                throw;
            }
            return retval;
        }