public List<PinModel> GetFriendsBreads(string accessToken, double startTime, int takeCount) { IDataHelper db = Container.getInstance("dataHelper").Resolve<IDataHelper>(); IFacebookHelper fb = Container.getInstance("facebookHelper").Resolve<IFacebookHelper>(); //get facebook profile and friend list List<string> friends = fb.GetUsersFriends(accessToken); List<Dictionary<string, object>> tempPinSet = db.GetPinWithUserIDs(friends, startTime, takeCount); List<PinModel> retval = new List<PinModel>(); PinModel tempPin = null; foreach (var item in tempPinSet) { tempPin = new PinModel() { Title = item["Title"].ToString(), OwnerID = item["Owner"].ToString(), OwnerHeadshot = item["OwnerHeadshot"].ToString(), OwnerName = item["OwnerName"].ToString(), Latitude = Convert.ToDouble(item["Latitude"]), Longitude = Convert.ToDouble(item["Longitude"]), PinDate = Convert.ToDouble(item["PinDate"]), Images = (List<string>)item["Images"] }; retval.Add(tempPin); } return retval; }
public List<PinModel> GetPinsWithUserID(string userID, double since, int takeCnt) { IDataHelper db = Container.getInstance("dataHelper").Resolve<IDataHelper>(); List<Dictionary<string, object>> tempPinSet = db.GetPinWithUserID(userID, since, takeCnt); List<PinModel> retval = new List<PinModel>(); PinModel tempPin = null; foreach (var item in tempPinSet) { tempPin = new PinModel() { Title = item["Title"].ToString(), OwnerID = item["Owner"].ToString(), OwnerHeadshot = item["OwnerHeadshot"].ToString(), OwnerName = item["OwnerName"].ToString(), Latitude = Convert.ToDouble(item["Latitude"]), Longitude = Convert.ToDouble(item["Longitude"]), PinDate = Convert.ToDouble(item["PinDate"]), Images = (List<string>)item["Images"] }; retval.Add(tempPin); } return retval; }
public async Task<HttpResponseMessage> StorePin() { PinModel pin = new PinModel(); Dictionary<string, object> retval = new Dictionary<string, object>(); try { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } Dictionary<string, Stream> files = new Dictionary<string, Stream>(); string accessToken = ""; await Request.Content.ReadAsMultipartAsync<MultipartMemoryStreamProvider>(new MultipartMemoryStreamProvider()).ContinueWith((tsk) => { MultipartMemoryStreamProvider prvdr = tsk.Result; foreach (HttpContent ctnt in prvdr.Contents) { switch (ctnt.Headers.ContentDisposition.Name) { case "\"accessToken\"": accessToken = ctnt.ReadAsStringAsync().Result.ToString(); break; case "\"Title\"": pin.Title = ctnt.ReadAsStringAsync().Result.ToString(); break; case "\"PinDate\"": pin.PinDate = Convert.ToDouble(ctnt.ReadAsStringAsync().Result.ToString()); break; case "\"Latitude\"": pin.Latitude = Convert.ToDouble(ctnt.ReadAsStringAsync().Result.ToString()); break; case "\"Longitude\"": pin.Longitude = Convert.ToDouble(ctnt.ReadAsStringAsync().Result.ToString()); break; //case "\"LastSyncDate\"": // pin.LastSyncDate = Convert.ToDouble(ctnt.ReadAsStringAsync().Result.ToString()); // break; case "\"File\"": pin.Images.Add(ConfigurationManager.AppSettings["S3Path"] + pin.OwnerName + @"\" + pin.PinDate.ToString("0") + ctnt.Headers.ContentDisposition.FileName.Replace(@"""", "")); files.Add(pin.PinDate.ToString("0") + ctnt.Headers.ContentDisposition.FileName.Replace(@"""", ""), ctnt.ReadAsStreamAsync().Result); break; default: break; } } if (files.Count > 0) { PinsService pinService = new PinsService(); retval = pinService.StorePin(pin, files, accessToken); } }); } catch (Exception ext) { retval.Add("state", false); retval.Add("message", ext.Message); throw; } string yourJson = JsonConvert.SerializeObject(retval); var response = this.Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(yourJson, Encoding.UTF8, "application/json"); return response; }
public PinModel GetPinWithPinID(string owner, double pinID) { IDataHelper db = Container.getInstance("dataHelper").Resolve<IDataHelper>(); Dictionary<string, object> tempPin = db.GetPinWithPinID(owner, pinID); PinModel retval = new PinModel() { Title = tempPin["Title"].ToString(), OwnerID = tempPin["Owner"].ToString(), OwnerHeadshot = tempPin["OwnerHeadshot"].ToString(), OwnerName = tempPin["OwnerName"].ToString(), Latitude = Convert.ToDouble(tempPin["Latitude"].ToString()), Longitude = Convert.ToDouble(tempPin["Longitude"].ToString()), PinDate = Convert.ToDouble(tempPin["PinDate"].ToString()), Images = (List<string>)tempPin["Images"] }; return retval; }
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; }