public static async Task<ObservableCollection<MemberItemTrackingStatus>> getTrackingItemStatus(long trackingitemid) { ObservableCollection<MemberItemTrackingStatus> ritemstatuscollection = new ObservableCollection<MemberItemTrackingStatus>(); methodLibrary mlb = new methodLibrary(); string userclass = await mlb.readSerializedUserClass(); RootObjectUsers rusers = new RootObjectUsers(); rusers = Users.usersDataDeserializer(userclass); Library_APICall apiLibrary = new Library_APICall(); string resp = await apiLibrary.apiCall((string)ApplicationData.Current.LocalSettings.Values["Tokens"], "https://api.teamsnap.com/v3/tracked_item_statuses/search?tracked_item_id=" + trackingitemid); RootObjectTrackingItemStatus ritemstatus = trackingStatusDataDeserializer(resp); Dictionary<string, int> rstatus_items_data_ht = new Dictionary<string, int>(); for (int i = 0; i < ritemstatus.collection.items[0].data.Count; i++) { if (!rstatus_items_data_ht.ContainsKey(ritemstatus.collection.items[0].data[i].name)) { rstatus_items_data_ht.Add(ritemstatus.collection.items[0].data[i].name, i); } } ritemstatuscollection.Clear(); for (int i = 0; i < ritemstatus.collection.items.Count; i++) { MemberItemTrackingStatus robj = new MemberItemTrackingStatus(); robj.object_id = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["id"]].value == null ? 0 : (long)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["id"]].value; robj.trackingitemid = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["tracked_item_id"]].value == null ? 0 : (long)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["tracked_item_id"]].value; robj.status = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["status"]].value == null ? "" : (string)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["status"]].value; robj.member_id = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["member_id"]].value == null ? 0 : (long)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["member_id"]].value; robj.status_code = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["status_code"]].value == null ? 0 : (long)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["status_code"]].value; CollectionUsersTeamMembers rmember = new CollectionUsersTeamMembers(); rmember = mlb.getMemberInfoFromFile(rusers, robj.member_id); robj.member_name = rmember.fullname; ritemstatuscollection.Add(robj); } return ritemstatuscollection; }
public static async Task<ObservableCollection<Comments>> createCollection(string response) { methodLibrary mlb = new methodLibrary(); string userclass = await mlb.readSerializedUserClass(); RootObjectUsers rusers = Users.usersDataDeserializer(userclass); ObservableCollection<Comments> rphotocomments = new ObservableCollection<Comments>(); try { RootObjectMediaComments rmediacom = mediaCommentsDataDeserializer(response); if (rmediacom.collection.items != null) { Dictionary<string, int> rmediacom_itemdata_ht = new Dictionary<string, int>(); for (int i = 0; i < rmediacom.collection.items[0].data.Count; i++) { if (!rmediacom_itemdata_ht.ContainsKey(rmediacom.collection.items[0].data[i].name)) { rmediacom_itemdata_ht.Add(rmediacom.collection.items[0].data[i].name, i); } } for (int i = 0; i < rmediacom.collection.items.Count; i++) { Comments cm = new Comments(); CollectionUsersTeamMembers rmembers = new CollectionUsersTeamMembers(); cm.comment = (string)rmediacom.collection.items[i].data[(int)rmediacom_itemdata_ht["comment"]].value; cm.memberid = rmediacom.collection.items[i].data[(int)rmediacom_itemdata_ht["member_id"]].value == null ? 0 : (long)rmediacom.collection.items[i].data[(int)rmediacom_itemdata_ht["member_id"]].value; cm.mediaid = rmediacom.collection.items[i].data[(int)rmediacom_itemdata_ht["team_medium_id"]].value == null ? 0 : (long)rmediacom.collection.items[i].data[(int)rmediacom_itemdata_ht["team_medium_id"]].value; rmembers = mlb.getMemberInfoFromFile(rusers, cm.memberid); cm.membername = rmembers.first_name + " " + rmembers.last_name; cm.memberphoto = rmembers.member_thumbnail_uri; DateTime lastupdatetime = rmediacom.collection.items[i].data[(int)rmediacom_itemdata_ht["updated_at"]].value == null ? DateTime.MinValue : (DateTime)rmediacom.collection.items[i].data[(int)rmediacom_itemdata_ht["updated_at"]].value; if (lastupdatetime.CompareTo(DateTime.MinValue) > 0) { if (lastupdatetime.CompareTo(DateTime.UtcNow.AddDays(-1)) > 0) { TimeSpan ts = DateTime.Now.Subtract(lastupdatetime); if (ts.Hours == 0) { if (ts.Minutes == 0) { cm.lastupdatedat = "A few seconds ago"; } else if (ts.Minutes < 5 && ts.Minutes > 0) { cm.lastupdatedat = "A few min ago"; } else { cm.lastupdatedat = ts.Minutes + " min ago"; } } else { if (ts.Hours == 1) { cm.lastupdatedat = "An hour ago"; } else { cm.lastupdatedat = ts.Hours + " hours ago"; } } } else { DateTime localtime = lastupdatetime.ToLocalTime(); cm.lastupdatedat = String.Format("{0:ddd, MMM dd, yyyy}", localtime); } } rphotocomments.Add(cm); } } } catch (Exception ex) { } return rphotocomments; }