/// <summary> /// Checks if loginData.xml exists and delete it if so. Definitaly creates a new loginData.xml file /// </summary> /// <param name="user"></param> public async void RememberLogin(User user) { await Task.Run(() => { localFileSystem file = new localFileSystem(); file.SaveUser(user); //string userLoginDataFilePath = UserLoginDataFilePath(); //ISaveAndLoad saveAndLoad = DependencyService.Get<ISaveAndLoad>(); //if(saveAndLoad.fileExist(userLoginDataFilePath)) // saveAndLoad.deleteFile(userLoginDataFilePath); //saveAndLoad.saveUserXml(userLoginDataFilePath, user); }); }
/// <summary> /// Set current user with user parameter and saves the login in loginData.xml /// </summary> /// <param name="user"></param> public void Login(User user) { localFileSystem file = new localFileSystem(); file.SaveUser(user); RememberLogin(user); }
public async Task DownloadInitialContent(User user) { try { localFileSystem files = new localFileSystem(); String userPath = files.AdjustPath(user.user_Email); //A newly created User cant have a folder with the same name in the folder so no check must be implemented files.CreateInitalFolders(userPath); DataAccessHandler accessHandler = new DataAccessHandler(); string serverAdress = accessHandler.ServerAdress; IFtpClient client = DependencyService.Get<IFtpClient>(); //Download all Products from the database List<Product> listAllProducts = await DataAccessHandler.DataAccess.GetAllProducts(); List<PContent> newEmptyContent = new List<PContent>(); foreach (var productAll in listAllProducts) { if (productAll.product_ID == 0) break; //Download Thumbnail in Produkte Folder client.DownloadFile(@"Produkte/" + productAll.product_Thumbnail, DependencyService.Get<ISaveAndLoad>().Getpath(@"Produkte/") + productAll.product_Thumbnail, serverAdress, accessHandler.FtpName, accessHandler.FtpPassword); } files.SaveUser(user); files.SaveModelsLocal(userPath, listAllProducts, newEmptyContent); //Hier GetALLProducts ansttt nur user products List<Product> listUserProducts = await DataAccessHandler.DataAccess.GetUserProducts(user); List<PContent> newlistPContents = new List<PContent>(); foreach (var product in listUserProducts) { //loads the PContent from the server List<PContent> listUserPContents = await DataAccessHandler.DataAccess.GetPContent(product.product_ID); if (product.product_ID == 0) break; foreach (var pcontent in listUserPContents) { if (pcontent.content_ID == 0) break; //creates a new p folder if not exists for content_Kind DependencyService.Get<ISaveAndLoad>().CreateFolder(DependencyService.Get<ISaveAndLoad>().PathCombine( DependencyService.Get<ISaveAndLoad>().Getpath(userPath), "p" + pcontent.content_ID)); List<string> contentPath = await DataAccessHandler.DataAccess.GetFileServerPath(pcontent.content_ID); foreach (var path in contentPath) { //loads every content from PContent client.DownloadFile(path, DependencyService.Get<ISaveAndLoad>().Getpath(files.GetUser().user_Email) + @"/p" + pcontent.content_ID + @"/" + Path.GetFileName(path), serverAdress, accessHandler.FtpName, accessHandler.FtpPassword); } while (newlistPContents.Count <= pcontent.content_ID) { newlistPContents.Add(null); } //updates Pcontent newlistPContents[pcontent.content_ID] = pcontent; if (pcontent.content_Kind != 0) { client.DownloadFile(@"Thumbnail/" + pcontent.content_ID + ".png", DependencyService.Get<ISaveAndLoad>().Getpath(files.GetUser().user_Email + @"/Thumbnail/") + pcontent.content_ID + ".png", serverAdress, accessHandler.FtpName, accessHandler.FtpPassword); } } } //Saves User, Products and PContent XML files.SaveUser(user); files.SaveModelsLocal(userPath, listAllProducts, newlistPContents); } catch (Exception e) { Debug.WriteLine("catched DL Exception: " + e); await DisplayAlert("Fehler beim Downloaden", "Es gab einen Fehler beim Downloaden, bitte erneut versuchen", "OK"); } }