public async Task<bool> ChangePassword(string userName, string oldPw, AddUserDTO user) { if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(oldPw) || user == null) { return false; } var requestString = BaseUri.AbsoluteUri + "/ChangePassword"; var credentials = new NetworkCredential(userName, oldPw); using (var client = new HttpClient(new HttpClientHandler() { Credentials = credentials })) { var result = await DatabaseStatusService.StartRequestWhenReady(async () => await client.PostAsXmlAsync(requestString, user), Enums.UpdateKind.Saving); if (result.IsSuccessStatusCode) { return true; } else if (result.StatusCode == HttpStatusCode.Unauthorized) { throw new UserNotAuthorizedException("Could not change password - old password incorrect"); } else { throw new WebException("Could not change password - " + result.StatusCode); } } }
public async Task<UserDTO> GetUserAsync(string UserId) { var requestString = string.Format(BaseUri.AbsoluteUri + "/User?id=" + UserId); using (var client = new HttpClient(new HttpClientHandler() { Credentials = userCredentials })) { var request = await DatabaseStatusService.StartRequestWhenReady(async () => await client.GetAsync(requestString), Enums.UpdateKind.Loading); if (request.IsSuccessStatusCode) { var result = await request.Content.ReadAsAsync<UserDTO>(); return result; } } return null; }
public async Task<NetworkCredential> AuthenticateUserAsync(string userName, string password) { var requestString = string.Format(BaseUri.AbsoluteUri + "/User"); var credentials = new NetworkCredential(userName, password); using (var client = new HttpClient(new HttpClientHandler() { Credentials = credentials })) { var request = await DatabaseStatusService.StartRequestWhenReady(async () => await client.GetAsync(requestString), Enums.UpdateKind.Loading); if (request.IsSuccessStatusCode) { var result = await request.Content.ReadAsAsync<bool>(); return credentials; } } return null; }
//private ObservableCollection<SessionBase> sessions; //public ReadOnlyObservableCollection<SessionBase> Sessions => new ReadOnlyObservableCollection<SessionBase>(sessions); //private List<Season> ActiveSeasons { get; } = new List<Season>(); //private List<Schedule> ActiveSchedules { get; } = new List<Schedule>(); //private List<SessionBase> ActiveSessions { get; } = new List<SessionBase>(); public LeagueContext() : base() { var apiAddress = GetApiAddress(); var modelCache = new ModelCache(); var databaseStatusService = new DatabaseStatusService() { BaseUri = new Uri(apiAddress) }; var userDatabase = new UserDatabaseClient(new Uri(apiAddress)) { DatabaseStatusService = databaseStatusService }; UserCredentialsManager = new UserCredentialsManager(userDatabase); userDatabase.SetCredentials(UserCredentialsManager); MapperProfile = new ModelMapperProfile(modelCache); //DbContext = new DbLeagueServiceClient(new WCFLeagueDbClientWrapper()); //DbContext.OpenConnection(); //DbContext.SetDatabaseName(DatabaseName); LocationMapperProfile = new LocationMapperProfile(LocationCollection); MapperProfile.LeagueContext = this; memberList = new ObservableCollection <LeagueMember>(); MapperConfiguration = new MapperConfiguration(cfg => { cfg.AddProfile(MapperProfile); cfg.AddProfile(LocationMapperProfile); cfg.AddCollectionMappers(); }); seasons = new ObservableCollection <SeasonModel>(); ModelDatabase = new ASPRestAPIClientWrapper(new Uri(apiAddress), LeagueName, UserCredentialsManager) { DatabaseStatusService = databaseStatusService }; LeagueDataProvider = (ILeagueDataProvider)ModelDatabase; ModelContext = ModelDatabase; ModelManager = new ModelManager(modelCache, ModelContext, MapperConfiguration); UserManager = new UserManager(modelCache, UserCredentialsManager, userDatabase); TracksDataProvider = (ITracksDataProvider)ModelDatabase; //_ = UpdateMemberList(); }
public async Task<UserProfileDTO> AddUserAsync(AddUserDTO user) { if (user == null) return null; var requestString = BaseUri.AbsoluteUri + "/User"; using (var client = new HttpClient()) { var request = await DatabaseStatusService.StartRequestWhenReady(async () => await client.PostAsXmlAsync(requestString, user), Enums.UpdateKind.Saving); if (request.IsSuccessStatusCode) { var result = await request.Content.ReadAsAsync<UserProfileDTO>(); return result; } else if (request.StatusCode == HttpStatusCode.Conflict) { throw new UserExistsException(); } } return null; }