Example #1
0
        public AddNewTeam()
        {
            this.InitializeComponent();
            //timezone_friendly = new ObservableCollection<string>();
            //tznames = new ObservableCollection<timezone>();
            //ReadOnlyCollection<TimeZoneInfo> tz = TimeZoneInfo.GetSystemTimeZones();
            //foreach (var tzone in tz)
            //{
            //    tznames.Add(new timezone(tzone.DisplayName));
            //}
            //TimeZoneCombo.DisplayMemberPath = tznames;
            rtemplate = new TemplateTeams();
            mlb = new methodLibrary();
            APILibrary = new Library_APICall();

            countries = new string[]
            {"Afghanistan","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antarctica","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Bouvet Island","Brazil","British Indian Ocean Territory","Brunei Darussalam","Bulgaria","Burkina Faso",
            "Burundi","Cambodia","Cameroon","Canada","Cape Verde","Cayman Islands","Central African Republic","Chad","Chile","China","Christmas Island","Cocos (Keeling) Islands","Colombia","Comoros","Congo","Congo, the Democratic Republic of the","Cook Islands","Costa Rica","Cote D'Ivoire","Croatia","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia", "Falkland Islands (Malvinas)","Faroe Islands","Fiji","Finland","France","French Guiana","French Polynesia","French Southern Territories","Gabon","Gambia",
            "Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Heard Island and Mcdonald Islands","Holy See (Vatican City State)", "Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran, Islamic Republic of","Iraq","Ireland","Israel","Italy","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Kiribati","Korea, Democratic People's Republic of","Korea, Republic of","Kuwait","Kyrgyzstan","Lao People's Democratic Republic",
            "Latvia","Lebanon","Lesotho","Liberia","Libyan Arab Jamahiriya","Liechtenstein","Lithuania","Luxembourg","Macao","Macedonia, the Former Yugoslav Republic of","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Martinique", "Mauritania","Mauritius","Mayotte","Mexico","Micronesia, Federated States of","Moldova, Republic of","Monaco","Mongolia","Montserrat","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","Netherlands Antilles","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Niue","Norfolk Island","Northern Mariana Islands","Norway","Oman","Pakistan","Palau","Palestinian Territory, Occupied","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Pitcairn","Poland","Portugal","Puerto Rico","Qatar","Reunion","Romania","Russian Federation","Rwanda","Saint Helena","Saint Kitts and Nevis","Saint Lucia","Saint Pierre and Miquelon","Saint Vincent and the Grenadines","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia and Montenegro","Seychelles","Sierra Leone","Singapore","Slovakia",
            "Slovenia","Solomon Islands","Somalia","South Africa","South Georgia and the South Sandwich Islands","Spain","Sri Lanka","Sudan","Suriname","Svalbard and Jan Mayen","Swaziland","Sweden","Switzerland","Syrian Arab Republic","Taiwan, Province of China","Tajikistan","Tanzania, United Republic of", "Thailand","Timor-Leste","Togo","Tokelau","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Turks and Caicos Islands","Tuvalu",
            "Uganda","Ukraine","United Arab Emirates","United Kingdom","United States","United States Minor Outlying Islands","Uruguay","Uzbekistan","Vanuatu","Venezuela","Viet Nam","Virgin Islands, British","Virgin Islands, US","Wallis and Futuna","Western Sahara","Yemen","Zambia","Zimbabwe",};

            sportnames = new string[]
            {
                "Basketball","Soccer","Softball","Baseball","Volleyball","Football","Cricket","Rugby","Lacrosse" ,"Wiffleball" ,"Bowling","Dodgeball","Field Hockey","Ice Hockey","Inline Hockey","Kickball","Paintball","Polo","Rowing","Ultimate" ,"Water Polo" ,"Other Sport" ,"Dragon Boat","Australian Football","Badminton" ,"Bandy" ,"Bocce","Broomball","Cheerleading","Chess","Croquet","Curling",
                "Cycling","Fencing","Foosball","Hurling","Indoor Soccer","Netball","Running","Swimming","Tennis","Floorball","Petanque","Golf","Sailing","Roller Derby","Wrestling","Ki-O-Rahi","Ringette","Non-Sport Group","Outrigger","Cow Tipping" ,"Racquetball" ,"Gymnastics-Men","Gymnastics-Women","Track And Field" ,"Archery","Floor Hockey","Slo-pitch" ,"Street Hockey" ,"Pickleball","Wheelchair Basketball",
                "Sled Hockey","Wheelchair Softball","Quad Rugby","Handcycling","Adaptive Sports","Cross Country" ,"Cross Country Skiing","Alpine Skiing","Wheelchair Hockey","Wheelchair Volleyball","Wheelchair Lacrosse","Horseback Riding" ,"Diving"
            };
            this.NavigationCacheMode = NavigationCacheMode.Required;
        }
Example #2
0
 public filesView()
 {
     mlibrary = new methodLibrary();
     apiLibrary = new Library_APICall();
     photosCollection = new ObservableCollection<Photos>();
     this.InitializeComponent();
 }
 public AddNewForumTopic()
 {
     this.InitializeComponent();
     mlibrary = new methodLibrary();
     APILibrary = new Library_APICall();
     this.NavigationCacheMode = NavigationCacheMode.Required;
 }
Example #4
0
 public TeamPage()
 {
     this.InitializeComponent();
     ruserteam = new CollectionUsersTeam();
     teamid = 0;
     mlb = new methodLibrary();
     this.NavigationCacheMode = NavigationCacheMode.Required;
    
 }
Example #5
0
 public PhotosView()
 {
     tempfilepath = null;
     mlibrary = new methodLibrary();
     apiLibrary = new Library_APICall();
     photosCollection = new ObservableCollection<Photos>();
     team_media_group_id = null;
     this.InitializeComponent();
 }
Example #6
0
 public Dashboard()
 {
     this.InitializeComponent();           
     userInfo = new ObservableCollection<CollectionUsersTeam>();
     userFunction = new Users();
     LibraryMethods = new methodLibrary();
     LibraryAuth = new Library_TokenAuth();
     feedbackLaunchLimit = 25;
     this.NavigationCacheMode = NavigationCacheMode.Required;            
 }
Example #7
0
 public MediaFolders()
 {
     teamid = 0;
     mLibrary = new methodLibrary();
     apiLibrary = new Library_APICall();
     rteamMedia = new RootObjectTeamMedia();
     photoCollectionFolder = new ObservableCollection<PhotoCollectionFolder>();
     //rotatorphoto = new ObservableCollection<RotatorPhotos>();
     this.InitializeComponent();
 }
Example #8
0
 public CalendarPage()
 {
     this.InitializeComponent();
     // this.NavigationCacheMode = NavigationCacheMode.Required;
     networkproblems = false;
     calendarfound = false;
     mlibrary = new methodLibrary();
     cal = new ObservableCollection<Calendar>();
     calAllEvents = new ObservableCollection<Calendar>();
 }
Example #9
0
 public PaymentsPage()
 {
     this.InitializeComponent();
     APILibrary = new Library_APICall();
     mlibrary = new methodLibrary();
     rteamFeeAPI = new RootObjectTeamFeeAPI();
     rMemberPaymentAPI = new RootObjectMemberPaymentAPI();
     rpaymentcollection = new ObservableCollection<TeamFeeItems>();
     rpayment = new RootPaymentCollection();
 }
Example #10
0
 public signin()
 {
     this.InitializeComponent();
     LibraryAuth = new Library_TokenAuth();
     LibraryAPI = new Library_APICall();
     lib = new methodLibrary();
     rme = new RootObjectMe();
     rmembers = new RootObjectMembers();
     rteams = new RootObjectTeams();
     rusers = new RootObjectUsers();
     meAPI = "https://api.teamsnap.com/v3/me";
    // CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true;
 }
Example #11
0
 public ForumPostsPage()
 {
     this.InitializeComponent();
     this.NavigationCacheMode = NavigationCacheMode.Required;
     rftopic = new ForumsTopic();
     mlibrary = new methodLibrary();
     APILibrary = new Library_APICall();
     rfpost = new ObservableCollection<ForumsPost>();
     /*ReplyToPostBox.MaxHeight = ReplyToPostBox.Height;
     replybutton.MaxHeight = ReplyToPostBox.MaxHeight;
     replybutton.Height = ReplyToPostBox.Height;*/
     
 }
Example #12
0
 public MainPage()
 {
     //test for network connectivity
     this.InitializeComponent();
     methodLibrary mlibrary = new methodLibrary();
     //Debug.WriteLine("ConnectionProfile Info : " + networkInfo);
     try
     {
         Package pack = Package.Current;
         PackageId packId = pack.Id;
         PackageVersion packVer = packId.Version;
         string appver = String.Format("{0}.{1}.{2}.{3}", packVer.Major, packVer.Minor, packVer.Build, packVer.Revision);
         if (ApplicationData.Current.LocalSettings.Values["AppVersion"] == null)
         {
             ApplicationData.Current.LocalSettings.Values["POSTCallMade"] = true;
             ApplicationData.Current.LocalSettings.Values["RefreshClicked"] = "true";
             ApplicationData.Current.LocalSettings.Values["AppVersion"] = appver;
         }
         else if ((string)ApplicationData.Current.LocalSettings.Values["AppVersion"] != appver)
         {
             ApplicationData.Current.LocalSettings.Values["POSTCallMade"] = true;
             ApplicationData.Current.LocalSettings.Values["RefreshClicked"] = "true";
             ApplicationData.Current.LocalSettings.Values["AppVersion"] = appver;
         }
         Debug.WriteLine("File.Exists" + File.Exists("fileUserClass.txt"));
         Debug.WriteLine("isNullOrEmpty :" + String.IsNullOrEmpty((string)ApplicationData.Current.LocalSettings.Values["Tokens"]));
         if (methodLibrary.checkNetworkConnectivity())
         {
             if (String.IsNullOrEmpty((string)ApplicationData.Current.LocalSettings.Values["Tokens"]))
             {
                 //mlibrary.writeToLogFile((DateTime.UtcNow).ToString() + ": Token doesn't exist. Navigating to SignIn page");
                 RootPage.Navigate(typeof(signin));
             }
             else
             {
                 Debug.WriteLine("in mainpage : " + ApplicationData.Current.LocalSettings.Values["Tokens"]);
                 //mlibrary.writeToLogFile((DateTime.UtcNow).ToString() + ": Token exists. Navigating to Dashboard page");
                 RootPage.Navigate(typeof(Dashboard));
             }
         }
         else
             networkProblems.Visibility = Visibility.Visible;
     }
     catch (Exception ex)
     {
         //mlibrary.writeToLogFile((DateTime.UtcNow).ToString() + ": Exception in MainPage.xaml.cs");
         var tc = new TelemetryClient();
         tc.TrackEvent("MainPage Exception : " + ex);
     }
 }
Example #13
0
 public AddNewEmail()
 {
     mlb = new methodLibrary();
     APILibrary = new Library_APICall();
     mselectrecipient = new ObservableCollection<CollectionUsersTeamMembers>();
     ruser = new RootObjectUsers();
     teamid_temp = 0;
     memberid = 0;
     parameterPresent = false;
     recipient_ids = null;
     recipient_names = null;
     rcem = new CollectionEventAvailabilityMembers();
     this.Loaded += AddNewEmail_Loaded;
     this.InitializeComponent();
 }
Example #14
0
 public AddEvent()
 {
     this.InitializeComponent();
     this.NavigationCacheMode = NavigationCacheMode.Required;
     ruserteam = new CollectionUsersTeam();
     rtemplate = new TemplateEvents();
     mlibrary = new methodLibrary();
     APILibrary = new Library_APICall();
     opponent_id_map = new Hashtable();
     location_id_map = new Hashtable();
     game_type_code = 0;
     opponentAvailable = false;
     locationAvailable = false;
     //opponents = new List<string>();
 }
Example #15
0
 public AddNewOpponent()
 {
     this.InitializeComponent();
     mlibrary = new methodLibrary();
     APILibrary = new Library_APICall();
     teamid = 0;
     Frame rootFrame = Window.Current.Content as Frame;
     if (rootFrame.CanGoBack)
     {
         // If we have pages in our in-app backstack and have opted in to showing back, do so
         SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
     }
     else
     {
         // Remove the UI from the title bar if there are no pages in our in-app back stack
         SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
     }
 }
Example #16
0
        public Forums()
        {
            this.InitializeComponent();
            APILibrary = new Library_APICall();
            mlibrary = new methodLibrary();
            rforumposts = new RootObjectForumPosts();
            rforumtopics = new RootObjectForumTopics();
            rforumdata = new RootObjectForumsData();
            remails = new RootObjectEmails();
            remaildata = new RootEmailData();
            ftopic = new ObservableCollection<ForumsTopic>();
            etopic = new ObservableCollection<EmailTopics>();
            DisplayInformation.AutoRotationPreferences = DisplayOrientations.Portrait;
            this.NavigationCacheMode = NavigationCacheMode.Required;
            //rforumdatatopic = new ForumsTopic();
            //this.NavigationCacheMode = NavigationCacheMode.Required;
            teamid = 0;

        }
 public CalendarPageDetail()
 {
     this.InitializeComponent();
     caldata = new ObservableCollection<Calendar>();
     mapIconAddress = "";
     mlibrary = new methodLibrary();
     rmemGoing = new ObservableCollection<MemberAvailabilityStatus>();
     rmemMaybe = new ObservableCollection<MemberAvailabilityStatus>();
     rmemNotGoing = new ObservableCollection<MemberAvailabilityStatus>();
     rmemUnknown = new ObservableCollection<MemberAvailabilityStatus>();
     reventavail = new RootObjectEventAvailability();
     status_code = -1;
     eventMemberAvailability_pos = 0;
     memberAvailable_pos = 0;
     teamid = 0;
     eventid = 0;
     hrefForAvailabilityRequest = null;
     currentUserMemberID = 0;
     //caldata = new Calendar();
     this.NavigationCacheMode = NavigationCacheMode.Required;
 }
Example #18
0
        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;
        }
Example #19
0
 public async Task<bool> getUserCollection(ObservableCollection<CollectionUsersTeam> teamData)
 {
     try
     {
         libMethods = new methodLibrary();
         //await libMethods.writeToLogFile((DateTime.UtcNow).ToString() + ": in getUserCollection method");
         string resp = await libMethods.readSerializedUserClass();
         var rootuser = usersDataDeserializer(resp);
         var teamsobject = rootuser.teams;
         teamData.Clear();
         foreach (var teams in teamsobject)
         {
             teamData.Add(teams);
         }
     }
     catch (Exception ex)
     {
         var tc = new TelemetryClient();
         tc.TrackEvent("getUserCollection Exception : " + ex);
         //await libMethods.writeToLogFile((DateTime.UtcNow).ToString() + ": Exception in getUserCollection");
         return false;
     }
     return true;
 }
Example #20
0
        /// <summary>
        /// Scales an image down. Not a very good algo, but good enough.
        /// </summary>
        /// <param name="filename"></param>
        /// <returns></returns>
        public async Task<bool> scaleImage(string filename)
        {
            var applicationData = Windows.Storage.ApplicationData.Current;
            methodLibrary mlb = new methodLibrary();
            Image image = new Image();
            int height = 0;
            int scaledHeight = 80 ;
            int scaledWidth = 80;
            int width = 0;
           
            var localFolder = applicationData.LocalFolder;
            try
            {
                StorageFile sourceFile= await localFolder.GetFileAsync(filename + ".png");
                IRandomAccessStreamWithContentType stream = await sourceFile.OpenReadAsync();
                ImageProperties properties = await sourceFile.Properties.GetImagePropertiesAsync();
               
                height = (int)properties.Height;
                width = (int)properties.Width;
                double scaleBy = 0;
                for (int scale = 10; scale > 0; scale--)
                {
                    if (((height * scale *0.1) <= 80) || ((width * scale *0.1) <= 80))
                    {
                        scaleBy = scale + 1;
                        break;
                    }
                }
                if (height != 0)
                {
                    scaledHeight = (int)(height * scaleBy * 0.1);
                }
                if (width != 0)
                {
                    scaledWidth = (int)(width * scaleBy * 0.1);
                }
                if(scaleBy == 0)
                {
                    scaledHeight = (int)(height * 0.1);
                    scaledWidth = (int)(width * 0.1);
                }

                StorageFile destinationFile = await localFolder.CreateFileAsync(filename + "_scaled.png", CreationCollisionOption.ReplaceExisting);
                using (var sourceStream = await sourceFile.OpenAsync(FileAccessMode.Read))
                {
                    BitmapDecoder decoder = await BitmapDecoder.CreateAsync(sourceStream);
                    BitmapTransform transform = new BitmapTransform() { ScaledHeight = (uint)scaledHeight, ScaledWidth = (uint)scaledWidth };
                    PixelDataProvider pixelData = await decoder.GetPixelDataAsync(BitmapPixelFormat.Rgba8, BitmapAlphaMode.Straight, transform, ExifOrientationMode.RespectExifOrientation, ColorManagementMode.DoNotColorManage);
                    
                    Debug.WriteLine("Actual height : " + height + "  Scaled height : " + scaledHeight);
                    Debug.WriteLine("Actual width : " + width+ "  Scaled width : " + scaledWidth);
                    using (var destinationStream = await destinationFile.OpenAsync(FileAccessMode.ReadWrite))
                    {
                        BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, destinationStream);
                        encoder.SetPixelData(BitmapPixelFormat.Rgba8, BitmapAlphaMode.Premultiplied, (uint)scaledWidth, (uint)scaledHeight, 96, 96, pixelData.DetachPixelData());
                        await encoder.FlushAsync();
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Exception in scaling image assets : " + ex);
                await mlb.writeToLogFile(DateTime.UtcNow.ToString() + "Exception in scaling image assets", false);
                return false;
            }
            return true;
        }
Example #21
0
        /// <summary>
        /// I created a new version of the function that already exists in methodlibrary because I needed an offcase which returned the string response.
        /// </summary>
        /// <param name="access_token"></param>
        /// <param name="response"></param>
        /// <param name="href"></param>
        /// <returns></returns>
        public async Task<string> apiPOSTCreateMember(string access_token, string response, string href)
        {

            methodLibrary mlibrary = new methodLibrary();
            HttpClient httpClient = new HttpClient();
            string resp = null;
            try
            {
                httpClient.DefaultRequestHeaders.Authorization = new HttpCredentialsHeaderValue("Bearer", access_token);
                httpClient.DefaultRequestHeaders.Accept.Add(new HttpMediaTypeWithQualityHeaderValue("application/json"));

                var httpResponseMessage = await httpClient.PostAsync(new Uri(href), new HttpStringContent(response));
                resp = await httpResponseMessage.Content.ReadAsStringAsync();
                //await mlibrary.writeFile("POSTresponse", resp);
                //Debug.WriteLine(resp);
                ApplicationData.Current.LocalSettings.Values["POSTCallMade"] = true;
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Caught exception : " + ex);
                var tc = new TelemetryClient();
                tc.TrackEvent("POST Fail :  " + href);
                return null;
            }
            return resp;
        }
Example #22
0
 public async Task<bool> writeFile(string filename, string response)
 {
     methodLibrary mlb = new methodLibrary();
     //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Writing to file " + filename);
     var applicationData = Windows.Storage.ApplicationData.Current;
     var localFolder = applicationData.LocalFolder;
     Debug.WriteLine("In writeFile : " + filename);
     try
     { 
         //Debug.WriteLine("In try of write.");
         StorageFile sampleFile = await localFolder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
         await FileIO.WriteTextAsync(sampleFile, response);
     }
     catch (System.UnauthorizedAccessException e)
     {
         Debug.WriteLine("in write to file : "+filename+" : " + e);
         var tc = new TelemetryClient();
         tc.TrackEvent("writeFile SystemUnAuthorizedException : " + e + " : response : " + response);
         //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": SystemUnauthorizedException in writing to file " + filename);
         return false;
     }
     return true;
 }
Example #23
0
        public async Task<bool> doWhatSignInDoes()
        {
            string access_token = null;
            string meAPIResponse = null;
            string teamAPIResponse = null;
            bool writeserializeduserclass = false;
            //string memberAPIResponse = null;
            LibraryAuth = new Library_TokenAuth();
            methodLibrary mlb = new methodLibrary();
            Library_APICall LibraryAPI = new Library_APICall();
            RootObjectMe rme = new RootObjectMe();
            //RootObjectMembers rmembers = new RootObjectMembers();
            RootObjectTeams rteams = new RootObjectTeams();
            RootObjectUsers ru = new RootObjectUsers();
            Debug.WriteLine("doWhatSignInDoes : Checking if token is valid");
            string meAPI = (string)ApplicationData.Current.LocalSettings.Values["meAPI"];
            if (await LibraryAuth.tokenIsValid())
            {
                access_token = (string)ApplicationData.Current.LocalSettings.Values["Tokens"];
                //call Me API
                //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Token is valid.");
                //meAPIResponse = await LibraryAPI.apiCall(access_token, meAPI);
                string refreshclicked = (string)ApplicationData.Current.LocalSettings.Values["RefreshClicked"];
                // if (await checkIfFileExists(("family_contacts_phone_res" + teammembers.member_id)) && (String.IsNullOrEmpty(refreshclicked) || refreshclicked.Equals("false")))
                if (await checkIfFileExists("meAPIResponse") && (String.IsNullOrEmpty(refreshclicked) || refreshclicked.Equals("false")))
                {
                    meAPIResponse = await readFile("meAPIResponse");
                    if (String.IsNullOrEmpty(meAPIResponse))
                    {
                        meAPIResponse = await LibraryAPI.apiCall(access_token, meAPI);
                    }
                }
                else
                {
                    meAPIResponse = await LibraryAPI.apiCall(access_token, meAPI);
                }
                if (meAPIResponse == "fail")
                {
                    //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Call to Me API failed");
                    return false;
                }
                //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Call to Me API succeeded.");
                Debug.WriteLine(meAPIResponse);

                // deserialize meAPIResponse
                //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Deserializaing Me API response.");
                rme = Me.MeDataDeserializer(meAPIResponse);
                //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": me API response deserialization complete.");
                Hashtable links_ht = new Hashtable();
                int id = 0;
                while (id < rme.collection.items[0].links.Count)
                {
                    if (!links_ht.Contains(rme.collection.items[0].links[id].rel))
                    {
                        links_ht.Add(rme.collection.items[0].links[id].rel, id);
                        
                    }
                    id++;
                }
                
                ApplicationData.Current.LocalSettings.Values["TeamsAPI"] = rme.collection.items[0].links[(int)links_ht["active_teams"]].href;
                string teamAPI = (string)ApplicationData.Current.LocalSettings.Values["TeamsAPI"];
                
                Debug.WriteLine(rme.collection.items[0].data[0].value);
              
                teamAPIResponse = await LibraryAPI.apiCall(access_token, teamAPI);
                if (teamAPIResponse == "fail")
                {
                    //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Call to Teams API failed.");
                    return false;
                }
                //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Call to Teams API succeded.");
                //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Deserializing Teams API Response.");
                rteams = Teams.teamDataDeserializer(teamAPIResponse);
                //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Deserialization of Teams API Response completed successfully.");
                ////await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Writing Me Response to file.");
                await writeFile("meAPIResponse", meAPIResponse);
                await writeFile("teamAPIResponse", teamAPIResponse);
                var rtemplate = rteams.collection.template;
                writeFile("teamTemplate", Teams.teamTemplateSerializer(rtemplate));

                //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Updating the User Class.");
                rusers = await methodLibrary.updateUser();
                //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": User class updated");
                string resp = Users.usersDataSerializer(rusers);
                Debug.WriteLine(resp);
                writeserializeduserclass = await writeSerializedUserClass(resp);
               
                resp = await readSerializedUserClass();
                //return true;
            }
            else 
            {                
                Debug.WriteLine("Network problems");
                //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Network connectivity problems.");
                return false;
            }
            return writeserializeduserclass;
        }
Example #24
0
        /// <summary>
        /// Download an image from a URL and store it to app local store.
        /// </summary>
        /// <param name="url"></param>
        /// <param name="filename"></param>
        /// <returns></returns>
        public static async Task<bool> downloadImage(string url, string filename)
        {
           
            Uri uri = new Uri(url);
            //string fname = member_id + ".png";
            methodLibrary mlb = new methodLibrary();
            var bitmapImage = new BitmapImage();
            var httpClient = new HttpClient();
            var httpResponse = await httpClient.GetAsync(uri);
            byte[] b = await httpResponse.Content.ReadAsByteArrayAsync();
            try
            {
                // create a new in memory stream and datawriter
                using (var stream = new InMemoryRandomAccessStream())
                {
                    using (DataWriter dw = new DataWriter(stream))
                    {
                        // write the raw bytes and store
                        dw.WriteBytes(b);
                        await dw.StoreAsync();

                        // set the image source
                        stream.Seek(0);
                        bitmapImage.SetSource(stream);

                        var storageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(
                            filename +".png",
                            CreationCollisionOption.OpenIfExists);

                        using (var storageStream = await storageFile.OpenAsync(FileAccessMode.ReadWrite))
                        {
                            await RandomAccessStream.CopyAndCloseAsync(stream.GetInputStreamAt(0), storageStream.GetOutputStreamAt(0));
                        }
                    }
                }
                await mlb.scaleImage(filename);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Exception in downloading image : " + ex);
                await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": download image exception", false);
                return false;
            }

            return true;
        }
Example #25
0
 public SettingsPage()
 {
     this.InitializeComponent();
     mlb = new methodLibrary();
 }
Example #26
0
        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;
        }
Example #27
0
 public Library_TokenAuth()
 {
     mlb = new methodLibrary();
 }
Example #28
0
 public async Task<string> readFile(string filename)
 {
     methodLibrary mlb = new methodLibrary();
     //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Reading file " + filename);
     var applicationData = Windows.Storage.ApplicationData.Current;
     var localFolder = applicationData.LocalFolder;
     string response = null;
     try
     {
         // Debug.WriteLine("in try of read");
         StorageFile sampleFile = await localFolder.GetFileAsync(filename);
         response = await FileIO.ReadTextAsync(sampleFile);                
     }
     catch (Exception e)
     {
         Debug.WriteLine("In read file : " + e);
         var tc = new TelemetryClient();
         tc.TrackEvent("readFile SystemUnAuthorizedException : " + e + " : filename : " + filename);
         await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Exception in reading file " + filename, true);
     }
     return response;
 }
Example #29
0
        /// <summary>
        /// update User Information.
        /// </summary>
        /// <returns></returns>
        public static async Task<RootObjectUsers> updateUser()
        {
            //await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.High,
            //    () =>
            //    {
            //        // UI stuff here
                     
            //    });
            mlb = new methodLibrary();
            //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": in updateUser method");
            string meAPIResponse = await mlb.readFile("meAPIResponse");
            RootObjectMe rme = new RootObjectMe();
            rme = Me.MeDataDeserializer(meAPIResponse);
            string teamAPIResponse = await mlb.readFile("teamAPIResponse");
            RootObjectTeams rteams = new RootObjectTeams();
            //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Deserializing teams response");
            rteams = Teams.teamDataDeserializer(teamAPIResponse);
            // start with rme and store data about the user
            itemCollection = new CollectionUsersItem();
            LibraryAPI = new Library_APICall();
            //teamsCollection = new CollectionUsersTeam();
            rusers = new RootObjectUsers();
            rusers.items = new List<CollectionUsersItem>();
            rusers.teams = new List<CollectionUsersTeam>();
            rsports = new RootObjectSports();
            
            RootObjectMembers rmembers = new RootObjectMembers();
            
            Hashtable rme_ht = new Hashtable();
            Hashtable rteam_ht = new Hashtable();
            Hashtable rteamlinks_ht = new Hashtable();
            string memberAPIResponse = null;
            int id = 0;

            /** Populate a hashtable to get sportname quickly. Also write results of sportsAPI call to a file.**/
            string sportres = await LibraryAPI.apiCall((string)ApplicationData.Current.LocalSettings.Values["Tokens"], "https://api.teamsnap.com/v3/sports");
            rsports = Sports.usersDataDeserializer(sportres);
            Hashtable rsports_ht = new Hashtable();
            for (int i = 0; i < rsports.collection.items.Count; i++)
            {
                if (!rsports_ht.Contains(rsports.collection.items[i].data[0].value))
                {
                    rsports_ht.Add(rsports.collection.items[i].data[0].value, i);
                }
            }
            mlb.makeAPICallandWriteToFile("sportsName", "https://api.teamsnap.com/v3/sports");

            /************/
            while(id < rme.collection.items[0].data.Count)
            {
                if (!rme_ht.Contains(rme.collection.items[0].data[id].name))
                {
                    rme_ht.Add(rme.collection.items[0].data[id].name, id);
                    
                }
                id++;
            }
            await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Updating itemcollections", false);
            itemCollection.id = rme.collection.items[0].data[(int)rme_ht["id"]].value == null ? 0:(long)rme.collection.items[0].data[(int)rme_ht["id"]].value;
            itemCollection.type = rme.collection.items[0].data[(int)rme_ht["type"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["type"]].value;
            itemCollection.address_country = rme.collection.items[0].data[(int)rme_ht["address_country"]].value == null ? "" : (string)rme.collection.items[0].data[(int)rme_ht["address_country"]].value;
            itemCollection.address_state = rme.collection.items[0].data[(int)rme_ht["address_state"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["address_state"]].value;
            itemCollection.birthday = rme.collection.items[0].data[(int)rme_ht["birthday"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["birthday"]].value;
            itemCollection.email = rme.collection.items[0].data[(int)rme_ht["email"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["email"]].value;
            updatePlanInfo(itemCollection.email);
            itemCollection.first_name = rme.collection.items[0].data[(int)rme_ht["first_name"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["first_name"]].value;
            itemCollection.last_name = rme.collection.items[0].data[(int)rme_ht["last_name"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["last_name"]].value;
            //itemCollection.teams_count = rme.collection.items[0].data[(int)rme_ht["teams_count"]].value == null ? 0:(long)rme.collection.items[0].data[(int)rme_ht["teams_count"]].value;
            try
            {
                itemCollection.teams_count = (int)rteams.collection.items.Count;
            }
            catch (Exception ex)
            {
                await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Exception in setting team count", true);
            }
            await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": itemcollection has been updated", false);
            rusers.items.Add(itemCollection);
            Debug.WriteLine("MethodLibrary : End rME. Start rTeam.");
            // now use rteams to store data about the teams the user is a member of.
            for(int i=0; i < rusers.items[0].teams_count; i++)
            {
                id = 0;
                try
                {
                    while (id < rteams.collection.items[i].data.Count)
                    {
                        if (!rteam_ht.Contains(rteams.collection.items[i].data[id].name))
                        {
                            rteam_ht.Add(rteams.collection.items[i].data[id].name, id);
                            
                        }
                        id++;
                    }
                    id = 0;
                    while (id < rteams.collection.items[i].links.Count)
                    {
                        if (!rteamlinks_ht.Contains(rteams.collection.items[i].links[id].rel))
                        {
                            rteamlinks_ht.Add(rteams.collection.items[i].links[id].rel, id);
                            
                        }
                        id++;
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("Exception in setting rteam_ht and rteamlinks_ht :" + ex);
                    await mlb.writeToLogFile((DateTime.UtcNow).ToString() + "Exception in setting rteam_ht and rteamlinks_ht: " + ex, true);
                }
                teamsCollection = new CollectionUsersTeam();
                teamsCollection.members = new List<CollectionUsersTeamMembers>();
                
                teamsCollection.id = rteams.collection.items[i].data[(int)rteam_ht["id"]].value == null ? 0:(long)rteams.collection.items[i].data[(int)rteam_ht["id"]].value;
               
                teamsCollection.eventsLink = rteams.collection.items[i].links[(int)rteamlinks_ht["events"]].href == null ? "":(string)rteams.collection.items[i].links[(int)rteamlinks_ht["events"]].href;
                /** Writing API call results of Opponents, Events and Locations to file. Speed up stuff ahead**/
                string flname = "events_" + (teamsCollection.id).ToString();
                
                await mlb.makeAPICallandWriteToFile(flname, teamsCollection.eventsLink);
             
                flname = "opponents_" + (teamsCollection.id).ToString();
                mlb.makeAPICallandWriteToFile(flname, (string)rteams.collection.items[i].links[(int)rteamlinks_ht["opponents"]].href);
                
                flname = "locations_" + (teamsCollection.id).ToString();
                mlb.makeAPICallandWriteToFile(flname, (string)rteams.collection.items[i].links[(int)rteamlinks_ht["locations"]].href);

                ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Updating Team";
                /**Done**/
                //string tempres = await LibraryAPI.apiCall((string)ApplicationData.Current.LocalSettings.Values["Tokens"], teamsCollection.eventsLink);
                teamsCollection.locationsLink = rteams.collection.items[i].links[(int)rteamlinks_ht["locations"]].href == null ? "":(string)rteams.collection.items[i].links[(int)rteamlinks_ht["locations"]].href;
                string memberslink = rteams.collection.items[i].links[(int)rteamlinks_ht["members"]].href == null ? "":(string)rteams.collection.items[i].links[(int)rteamlinks_ht["members"]].href;
                teamsCollection.type = rteams.collection.items[i].data[(int)rteam_ht["type"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["type"]].value;
                teamsCollection.division_name = rteams.collection.items[i].data[(int)rteam_ht["division_name"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["division_name"]].value;
                teamsCollection.is_archived_season = rteams.collection.items[i].data[(int)rteam_ht["is_archived_season"]].value == null ? false : (bool)rteams.collection.items[i].data[(int)rteam_ht["is_archived_season"]].value;
                teamsCollection.is_retired = rteams.collection.items[i].data[(int)rteam_ht["is_retired"]].value == null ? false : (bool)rteams.collection.items[i].data[(int)rteam_ht["is_retired"]].value;
                teamsCollection.league_name = rteams.collection.items[i].data[(int)rteam_ht["league_name"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["league_name"]].value;
                teamsCollection.league_url = rteams.collection.items[i].data[(int)rteam_ht["league_url"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["league_url"]].value;
                teamsCollection.is_in_league = rteams.collection.items[i].data[(int)rteam_ht["is_in_league"]].value == null ? false : (bool)rteams.collection.items[i].data[(int)rteam_ht["is_in_league"]].value;
                teamsCollection.location_country = rteams.collection.items[i].data[(int)rteam_ht["location_country"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["location_country"]].value;
                teamsCollection.location_postal_code = rteams.collection.items[i].data[(int)rteam_ht["location_postal_code"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["location_postal_code"]].value;
                teamsCollection.location_latitude = rteams.collection.items[i].data[(int)rteam_ht["location_latitude"]].value == null ? "38.8951100" :(string)rteams.collection.items[i].data[(int)rteam_ht["location_latitude"]].value;
                ApplicationData.Current.LocalSettings.Values["team_latitude_" + teamsCollection.id] = (string)teamsCollection.location_latitude;
                teamsCollection.location_longitude = rteams.collection.items[i].data[(int)rteam_ht["location_longitude"]].value == null ? "-77.0363700" : (string)rteams.collection.items[i].data[(int)rteam_ht["location_longitude"]].value;
                ApplicationData.Current.LocalSettings.Values["team_longitude_" + teamsCollection.id] = (string)teamsCollection.location_longitude;
                teamsCollection.name = rteams.collection.items[i].data[(int)rteam_ht["name"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["name"]].value;
                teamsCollection.plan_id = rteams.collection.items[i].data[(int)rteam_ht["plan_id"]].value == null ? 0:(long)rteams.collection.items[i].data[(int)rteam_ht["plan_id"]].value;
                teamsCollection.season_name = rteams.collection.items[i].data[(int)rteam_ht["season_name"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["season_name"]].value;
                teamsCollection.sport_id = rteams.collection.items[i].data[(int)rteam_ht["sport_id"]].value == null ? 0:(long)rteams.collection.items[i].data[(int)rteam_ht["sport_id"]].value;
                teamsCollection.sport_name = getSportName(teamsCollection.sport_id, rsports_ht);                
                teamsCollection.pathToSportLogo = "images/" + teamsCollection.sport_id + ".png";
                ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Updating Team " + teamsCollection.name;
                //teamsCollection.teamOwner = itemCollection.first_name + " " + itemCollection.last_name;

                mlb.writeToLogFile("Calling TeamAvailability API", false);
                mlb.makeAPICallandWriteToFile("teamAvailabilityAPI" + teamsCollection.id, (string)rteams.collection.items[i].links[(int)rteamlinks_ht["availabilities"]].href);

                mlb.writeToLogFile("Done calling TeamAvailability API and updating the availabilityfile", false);
                // make API call to fetch members for that particular team

                memberAPIResponse = await LibraryAPI.apiCall((string)ApplicationData.Current.LocalSettings.Values["Tokens"], memberslink);  
                if (memberAPIResponse != "fail")
                {
                    //deserialize the response
                    rmembers = Members.membersDataDeserializer(memberAPIResponse);
                    Hashtable rmember_ht = new Hashtable();
                    // use rmembers to store data about the members the team has
                    for (int j = 0; j < rmembers.collection.items.Count; j++)
                    {
                        int idm = 0;
                       // Debug.WriteLine("Adding values to rmember_ht");
                        while (idm < rmembers.collection.items[j].data.Count)
                        {
                            //Debug.WriteLine("Inside the while loop that adds values to rmember_ht");
                            try
                            {
                                if (!rmember_ht.Contains(rmembers.collection.items[j].data[idm].name))
                                {
                                    rmember_ht.Add(rmembers.collection.items[j].data[idm].name, idm);                                   
                                }
                                idm++;
                            }
                            catch (Exception ex)
                            {
                                Debug.WriteLine(ex);
                                var tc = new TelemetryClient();
                                await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": rmember_ht exception", true);
                                tc.TrackEvent("rmember_ht exception : " + ex);
                            }
                        }
                        ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Updating Team Members";
                        teammembers = new CollectionUsersTeamMembers();
                        await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Updating teammember", false);
                        teammembers.address_city = rmembers.collection.items[j].data[(int)rmember_ht["address_city"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["address_city"]].value;
                        teammembers.address_state = rmembers.collection.items[j].data[(int)rmember_ht["address_state"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["address_state"]].value;
                        teammembers.address_street1 = rmembers.collection.items[j].data[(int)rmember_ht["address_street1"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["address_street1"]].value;
                        teammembers.address_street2 = rmembers.collection.items[j].data[(int)rmember_ht["address_street2"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["address_street2"]].value;
                        teammembers.address_zip = rmembers.collection.items[j].data[(int)rmember_ht["address_zip"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["address_zip"]].value;
                        teammembers.birthday = rmembers.collection.items[j].data[(int)rmember_ht["birthday"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["birthday"]].value;
                        teammembers.member_id = rmembers.collection.items[j].data[(int)rmember_ht["id"]].value == null ? 0 : (long)rmembers.collection.items[j].data[(int)rmember_ht["id"]].value;
                        //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": member id " + teammembers.member_id);
                        teammembers.first_name = rmembers.collection.items[j].data[(int)rmember_ht["first_name"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["first_name"]].value;
                        ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Updating " + teammembers.first_name + " information";
                        teammembers.gender = rmembers.collection.items[j].data[(int)rmember_ht["gender"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["gender"]].value;
                        teammembers.is_address_hidden = rmembers.collection.items[j].data[(int)rmember_ht["is_address_hidden"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["hide_address"]].value;
                        teammembers.is_age_hidden = rmembers.collection.items[j].data[(int)rmember_ht["is_age_hidden"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["hide_age"]].value;
                        teammembers.is_manager = rmembers.collection.items[j].data[(int)rmember_ht["is_manager"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["is_manager"]].value;
                        teammembers.is_non_player = rmembers.collection.items[j].data[(int)rmember_ht["is_non_player"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["is_non_player"]].value;
                        teammembers.jersey_number = rmembers.collection.items[j].data[(int)rmember_ht["jersey_number"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["jersey_number"]].value;
                        //Debug.WriteLine("Jersey Number : " + ((bool)string.IsNullOrEmpty((string)rmembers.collection.items[j].data[24].value)) ? true : false );
                        teammembers.last_name = rmembers.collection.items[j].data[(int)rmember_ht["last_name"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["last_name"]].value;
                        teammembers.position = rmembers.collection.items[j].data[(int)rmember_ht["position"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["position"]].value;
                        teammembers.team_id = rmembers.collection.items[j].data[(int)rmember_ht["team_id"]].value == null ? 0:(long)rmembers.collection.items[j].data[(int)rmember_ht["team_id"]].value;
                        teammembers.user_id = rmembers.collection.items[j].data[(int)rmember_ht["user_id"]].value == null ? 0 : (long)rmembers.collection.items[j].data[(int)rmember_ht["user_id"]].value;
                        bool is_owner = rmembers.collection.items[j].data[(int)rmember_ht["is_owner"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["is_owner"]].value;
                        
                        /// if the current member is also the logged-in user, store that id in a separate object
                        if (teammembers.user_id == rusers.items[0].id)
                        {
                            teamsCollection.loggedInUsersmemberID = teammembers.member_id;
                        }
                        if (is_owner == true)
                        {
                            teamsCollection.teamOwner = teammembers.first_name + " " + teammembers.last_name;
                            teamsCollection.teamOwnerMemberId = teammembers.member_id;
                        }
                        bool is_manager = rmembers.collection.items[j].data[(int)rmember_ht["is_owner"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["is_manager"]].value;
                        if (is_manager == true)
                        {
                            teamsCollection.teamManagerName = teammembers.first_name + " " + teammembers.last_name;
                            teamsCollection.teamManagerMemberId = teammembers.member_id;
                        }
                        //teammembers.updated_at = rmembers.collection.items[j].data[(int)rmember_ht["updated_at"]].value == null ? DateTime.MinValue : (DateTime)rmembers.collection.items[j].data[(int)rmember_ht["updated_at"]].value;



                        /*
                         
                         Fetching Family Member Information
                         */
                        ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Looking for " + teammembers.first_name + "'s family information";
                        await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": ****Calling Contacts, Contacts Phone and Contacts Email API for member : " + teammembers.member_id +  "****", false);
                      
                        teammembers.fullname = teammembers.first_name + (teammembers.last_name == null ? "" : (" " + teammembers.last_name));
                        Debug.WriteLine("Member ID : " + teammembers.member_id);
                        await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Updating member_photos", false);
                        //teammembers.member_photo = "images/member_photo.jpg";
                        bool memberPhotofound = false;
                        Debug.WriteLine("Running through all the links to find rel member_photo");
                        for (int m = 0; m < rmembers.collection.items[j].links.Count; m++)
                        {
                            //Debug.WriteLine("rel : " + rmembers.collection.items[j].links[m].rel);
                            //Debug.WriteLine("m : " + m);
                            if (rmembers.collection.items[j].links[m].rel == "member_thumbnail")
                            {
                                teammembers.member_thumbnail_uri = (string)rmembers.collection.items[j].links[m].href;
                            }
                            if (rmembers.collection.items[j].links[m].rel == "member_photo")
                            {
                                memberPhotofound = true;
                                //Debug.WriteLine("Member Photo Exists");
                                Debug.WriteLine(rmembers.collection.items[j].links[m].href);
                                string teammembers_member_photo = (string)rmembers.collection.items[j].links[m].href;
                                
                                try
                                {
                                    ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Looking for changes to " + teammembers.first_name + "'s profile photo.";
                                    Debug.WriteLine("teammembers_member_photo : " + teammembers_member_photo);
                                    // await downloadImage(teammembers_member_photo, "member" + (teammembers.member_id).ToString());
                                    //teammembers.member_photo = "ms-appdata:///local/member" + (teammembers.member_id).ToString() + "_scaled.png";
                                    teammembers.member_photo_notscaled = "ms-appdata:///local/member" + (teammembers.member_id).ToString() + ".png";
                                    if (String.IsNullOrEmpty(teammembers_member_photo))
                                    {
                                        teammembers.member_photo_imagex_path = "images/member_photo.jpg";
                                        teammembers.member_photo_imagex_uri = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png";
                                    }
                                    else
                                    {
                                        //teammembers.member_photo_imagex_path = "ms-appdata:///temp/ImageCache/" + methodLibrary.BuildFileName(new Uri(teammembers_member_photo));
                                        teammembers.member_photo_imagex_uri = teammembers_member_photo;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Debug.WriteLine("Failed to download image");
                                    teammembers.member_photo = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png";
                                    teammembers.member_photo_imagex_uri = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png";
                                    teammembers.member_thumbnail_uri = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png";
                                    teammembers.member_photo_notscaled = "images/member_photo.jpg";
                                    teammembers.member_photo_imagex_path = "images/member_photo.jpg";
                                    await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Failed to download image", false);
                                }
                                //}
                            }

                        }
                        Debug.WriteLine("Photo Found : " + memberPhotofound);
                        if(memberPhotofound == false)
                        {
                            Debug.WriteLine("Adding default photos to the teammembers link");
                            teammembers.member_photo = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png";
                            teammembers.member_photo_imagex_uri = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png";
                            teammembers.member_thumbnail_uri = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png";
                            Debug.WriteLine("Finished adding default photos to the teammembers link");
                        }
                        //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": All member photos have been updated");
                        Debug.WriteLine("Adding members to teamcollection");
                        teamsCollection.members.Add(teammembers);
                        rmember_ht.Clear();
                    }
                }
                Debug.WriteLine("Adding teamCollection to rusers");
                rusers.teams.Add(teamsCollection);
                //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": teamCollection added to userClass");
                rteam_ht.Clear();
                rteamlinks_ht.Clear();
                Debug.WriteLine("Done adding teamcollection to rusers");
                //rsports_ht.Clear();
            }
            await updateAvailability(rusers);
            Debug.WriteLine("MethodLibrary : End rTeam.");
            rsports_ht.Clear();
            Debug.WriteLine("returning users");
            return rusers;
        }
Example #30
0
        public static async Task<bool> updateAvailability(RootObjectUsers rusers)
        {
            methodLibrary mlib = new methodLibrary();
            Hashtable rteams_ht = new Hashtable();
            if (rusers.teams != null)
            {
                for (int i = 0; i < rusers.teams.Count; i++)
                {
                    if (!rteams_ht.Contains(rusers.teams[i].id))
                    {
                        rteams_ht.Add(rusers.teams[i].id, i);
                    }
                }
            }
            RootObjectEventAvailability reventavailability = new RootObjectEventAvailability();
            for (int teami = 0; teami < rusers.teams.Count; teami++)
            {
                try
                {
                    string response = await mlib.readFile("teamAvailabilityAPI" + rusers.teams[teami].id);
                    long manager_memberid = 0;
                    long owner_memberid = 0;
                    RootObjectAvailabilityAPI ravailbilityAPI = AvailabilityAPI.availabilityAPIDataDeserializer(response);
                    RootObjectEventAvailability reventavail = new RootObjectEventAvailability();
                    reventavail.eventMemberAvailability = new ObservableCollection<CollectionEventAvailabilityMembers>();
                    if (ravailbilityAPI.collection.items != null)  //meaning there is some availability defined in there
                    {
                        Hashtable ravailibityAPI_items_ht = new Hashtable();
                        for (int i = 0; i < ravailbilityAPI.collection.items[0].data.Count; i++)
                        {
                            if (!ravailibityAPI_items_ht.Contains(ravailbilityAPI.collection.items[0].data[i].name))
                            {
                                ravailibityAPI_items_ht.Add(ravailbilityAPI.collection.items[0].data[i].name, i);
                            }
                        }
                        Hashtable ravailabilityAPI_events_ht = new Hashtable();
                        int pos = 0;
                        for (int i = 0; i < ravailbilityAPI.collection.items.Count; i++)
                        {
                            if (!ravailabilityAPI_events_ht.ContainsKey(ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["event_id"]].value))
                            {
                                ravailabilityAPI_events_ht.Add(ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["event_id"]].value, pos);
                                CollectionEventAvailabilityMembers reventavailmembers = new CollectionEventAvailabilityMembers();
                                //reventavailmembers.hrefForThisEvent = ravailbilityAPI.collection.items[i].href;
                                reventavailmembers.eventid = ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["event_id"]].value == null ? 0 : (long)ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["event_id"]].value;
                                reventavailmembers.team_id = ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["team_id"]].value == null ? 0 : (long)ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["team_id"]].value;
                                reventavailmembers.manager_memberID = rusers.teams[(int)rteams_ht[reventavailmembers.team_id]].teamManagerMemberId;
                                manager_memberid = reventavailmembers.manager_memberID;
                                reventavailmembers.owner_memberID = rusers.teams[(int)rteams_ht[reventavailmembers.team_id]].teamOwnerMemberId;
                                owner_memberid = reventavailmembers.owner_memberID;
                                reventavailmembers.currentUser_memberID = rusers.teams[(int)rteams_ht[reventavailmembers.team_id]].loggedInUsersmemberID;
                                reventavail.eventMemberAvailability.Add(reventavailmembers);
                                pos++;
                            }
                            MemberAvailabilityStatus rmemstatus = new MemberAvailabilityStatus();
                            try
                            {
                                rmemstatus.updateMemberAvailabilityhref = ravailbilityAPI.collection.items[i].href;
                            }
                            catch (Exception ex)
                            {
                                Debug.WriteLine("Exception in storing the availability API of a member : " + ex);
                                await mlb.writeToLogFile("xception in storing the availability API of a member : " + ex, false);
                            }
                            rmemstatus.member_id = ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["member_id"]].value == null ? 0 : (long)ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["member_id"]].value;
                            rmemstatus.notes = (string)ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["notes"]].value;
                            rmemstatus.notes_author_member_id = ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["notes_author_member_id"]].value == null ? -1 : (long)ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["notes_author_member_id"]].value;
                            rmemstatus.status_code = ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["status_code"]].value == null ? -1 : (long)ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["status_code"]].value;
                            rmemstatus.status_string = (string)ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["status"]].value;
                            if (rmemstatus.member_id == manager_memberid)
                            {
                                rmemstatus.is_teammamager = true;
                            }
                            else
                            {
                                rmemstatus.is_teammamager = false;
                            }

                            if (rmemstatus.member_id == owner_memberid)
                            {
                                rmemstatus.is_teamowner = true;
                            }
                            else
                            {
                                rmemstatus.is_teamowner = false;
                            }
                            int event_pos = (int)ravailabilityAPI_events_ht[ravailbilityAPI.collection.items[i].data[(int)ravailibityAPI_items_ht["event_id"]].value];
                            if (reventavail.eventMemberAvailability[event_pos].memberAvailable == null)
                            {
                                reventavail.eventMemberAvailability[event_pos].memberAvailable = new ObservableCollection<MemberAvailabilityStatus>();
                            }
                            reventavail.eventMemberAvailability[event_pos].memberAvailable.Add(rmemstatus);
                        }
                        ravailabilityAPI_events_ht.Clear();
                        ravailibityAPI_items_ht.Clear();
                    }
                    for (int i = 0; i < reventavail.eventMemberAvailability.Count; i++)
                    {
                        if (rteams_ht.Contains(reventavail.eventMemberAvailability[i].team_id))
                        {
                            var teams = rusers.teams[(int)rteams_ht[reventavail.eventMemberAvailability[i].team_id]];
                            Hashtable rteamMember_ht = new Hashtable();
                            int numOfMembersInTeam = rusers.teams[(int)rteams_ht[reventavail.eventMemberAvailability[i].team_id]].members.Count;
                            for (int j = 0; j < numOfMembersInTeam; j++)
                            {
                                if (!rteamMember_ht.Contains(rusers.teams[(int)rteams_ht[reventavail.eventMemberAvailability[i].team_id]].members[j].member_id))
                                {
                                    rteamMember_ht.Add(rusers.teams[(int)rteams_ht[reventavail.eventMemberAvailability[i].team_id]].members[j].member_id, j);
                                }
                            }
                            for (int j = 0; j < reventavail.eventMemberAvailability[i].memberAvailable.Count; j++)
                            {
                                if (rteamMember_ht.Contains(reventavail.eventMemberAvailability[i].memberAvailable[j].member_id))
                                {
                                    // int event_member_pos = (int)reventavail.eventMemberAvailability[i].memberAvailable[j].member_id;
                                    // bool tr = rteamMember_ht.Contains(event_member_pos);
                                    int member_pos = (int)rteamMember_ht[reventavail.eventMemberAvailability[i].memberAvailable[j].member_id];
                                    reventavail.eventMemberAvailability[i].memberAvailable[j].member_name = teams.members[member_pos].fullname;
                                    reventavail.eventMemberAvailability[i].memberAvailable[j].member_photo = teams.members[member_pos].member_photo;
                                }
                            }
                            rteamMember_ht.Clear();
                        }
                    }
                    
                    string res = AvailabilityAPI.eventAvailabilityDataSerializer(reventavail);
                    await mlib.writeFile("EventsMemberAvailability" + rusers.teams[teami].id, res);
                    Debug.WriteLine(res);
                }
                catch (Exception ex)
                {
                    await mlib.writeToLogFile("Exception in updateAvailability() : " + ex, true);
                }
            }
            rteams_ht.Clear();
            return true;
        }