/// <summary> /// Creates a new member by notifying the backend server /// </summary> /// <param name="m"></param> /// <returns>UserManagerResponseStatus</returns> public async Task <UserManagerResponseStatus> CreateMember(Member m) { var client = new RestClient(GlobalConstants.EndPointURL); var request = new RestRequest { Resource = GlobalConstants.CreateMemberEndPointRequestURL, Timeout = GlobalConstants.RequestTimeout, Method = Method.POST }; PropertyInfo[] properties = typeof(Member).GetProperties(); foreach (PropertyInfo property in properties) { request.AddParameter(property.Name, property.GetValue(m)); } try { var response = await client.ExecuteTaskAsync(request); if (response.Content != null) { UserManagerResponse data = JsonConvert.DeserializeObject <UserManagerResponse>(response.Content); switch (data.Status) { case "MissingFields": return(UserManagerResponseStatus.MissingFields); case "Success": SessionKey = data.Key; return(UserManagerResponseStatus.Success); case "UserExists": return(UserManagerResponseStatus.UserExists); default: return(UserManagerResponseStatus.UnknownResponse); } } } catch (Exception e) { var property = new Dictionary <string, string> { { "Category", "UserManager" } }; Crashes.TrackError(e, property); return(UserManagerResponseStatus.NetworkError); } return(UserManagerResponseStatus.InvalidRequest); }
/// <summary> /// Logs user into the FBLA backend /// </summary> /// <param name="email"></param> /// <param name="password"></param> /// <returns></returns> public async Task <UserManagerResponseStatus> Login(string email, string password) { var client = new RestClient(GlobalConstants.EndPointURL); var request = new RestRequest { Resource = GlobalConstants.LoginEndPointRequestURL, Timeout = GlobalConstants.RequestTimeout, Method = Method.POST }; request.AddParameter("email", email); request.AddParameter("password", password); try { var response = await client.ExecuteTaskAsync(request); if (response.Content != null) { UserManagerResponse data = JsonConvert.DeserializeObject <UserManagerResponse>(response.Content); if (data.Status != null) { switch (data.Status) { case "Invalid form data": return(UserManagerResponseStatus.InvalidRequest); case "LoggedIn": SessionKey = data.Key; Profile = data.Profile; return(UserManagerResponseStatus.Success); case "InvalidCredentials": return(UserManagerResponseStatus.InvalidCredentials); default: return(UserManagerResponseStatus.UnknownResponse); } } } } catch (Exception e) { var properties = new Dictionary <string, string> { { "Category", "UserManager" } }; Crashes.TrackError(e, properties); return(UserManagerResponseStatus.NetworkError); } return(UserManagerResponseStatus.InvalidRequest); }
public async Task <UserManagerResponseStatus> SaveProfileImage(string encodedImage) { var client = new RestClient(GlobalConstants.EndPointURL); var request = new RestRequest { Resource = GlobalConstants.EditProfileImageRequestURL, Timeout = GlobalConstants.RequestTimeout, Method = Method.POST }; request.AddParameter("profileImageSource", encodedImage); AddAuthorization(request); try { var response = await client.ExecuteTaskAsync(request); if (response.Content != null) { UserManagerResponse data = JsonConvert.DeserializeObject <UserManagerResponse>(response.Content); if (data.Status != null) { switch (data.Status) { case "Success": return(UserManagerResponseStatus.Success); case "NotLoggedIn": return(UserManagerResponseStatus.InvalidCredentials); default: return(UserManagerResponseStatus.UnknownResponse); } } } } catch (Exception e) { var properties = new Dictionary <string, string> { { "Category", "UserManager" } }; Crashes.TrackError(e, properties); return(UserManagerResponseStatus.NetworkError); } return(UserManagerResponseStatus.InvalidRequest); }
/// <summary> /// Allows the user to signup for a particular meeting with a password provided by the meeting organizer /// </summary> /// <param name="meeting">Meeting member wants to sign up for</param> /// <param name="password">Password code for meeting</param> /// <returns></returns> public async Task <UserManagerResponseStatus> MeetingSignup(Meeting meeting, string password = "") { var client = new RestClient(GlobalConstants.EndPointURL); var request = new RestRequest { Resource = GlobalConstants.MeetingSignupEndPointRequestURL, Timeout = GlobalConstants.RequestTimeout, Method = Method.POST }; request.AddParameter("meetingid", meeting.MeetingId); request.AddParameter("password", password); AddAuthorization(request); try { var response = await client.ExecuteTaskAsync(request); if (response.Content != null) { UserManagerResponse data = JsonConvert.DeserializeObject <UserManagerResponse>(response.Content); if (data.Status != null) { switch (data.Status) { case "NotLoggedIn": return(UserManagerResponseStatus.NotLoggedIn); case "InvalidCredentials": return(UserManagerResponseStatus.InvalidCredentials); case "Success": if (data.Meeting != null) { meeting.EventName = data.Meeting.EventName; meeting.AllDay = data.Meeting.AllDay; meeting.Capacity = data.Meeting.Capacity; meeting.Color = data.Meeting.Color; meeting.ContactId = data.Meeting.ContactId; meeting.Description = data.Meeting.Description; meeting.From = data.Meeting.From; meeting.MeetingId = data.Meeting.MeetingId; meeting.Organizer = data.Meeting.Organizer; meeting.To = data.Meeting.To; meeting.Type = data.Meeting.Type; meeting.MeetingAttendees.Clear(); foreach (var attendee in data.Meeting.MeetingAttendees) { meeting.MeetingAttendees.Add(attendee); } meeting.OnPropertyChanged("MeetingAttendees"); } return(UserManagerResponseStatus.Success); default: return(UserManagerResponseStatus.UnknownResponse); } } } } catch (Exception e) { var properties = new Dictionary <string, string> { { "Category", "UserManager" } }; Crashes.TrackError(e, properties); return(UserManagerResponseStatus.NetworkError); } return(UserManagerResponseStatus.InvalidRequest); }