public async Task <System.Web.Http.IHttpActionResult> UpdateImage() { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } var user = User.Identity.Name; var provider = new MultipartMemoryStreamProvider(); await Request.Content.ReadAsMultipartAsync(provider); var fileManager = new AzureFileManager(); foreach (var file in provider.Contents) { var filename = file.Headers.ContentDisposition.FileName.Trim('\"'); var buffer = await file.ReadAsByteArrayAsync(); //Do whatever you want with filename and its binary data. var result = fileManager.UploadFileAsync(buffer, $"{user}.png");//pass file stream if (!string.IsNullOrEmpty(result.Result)) { return(BadRequest(result.Result)); } } return(Ok()); }
private string LoadGameForRequest() { string folder = null; string gameFile = Request["file"]; string id = Request["id"]; if (string.IsNullOrEmpty(gameFile)) { if (!string.IsNullOrEmpty(id)) { IFileManager fileManager = FileManagerLoader.GetFileManager(); if (fileManager != null) { gameFile = fileManager.GetFileForID(id); } } } AzureFileManager.ApiGame apiGameData = null; var loadData = Session["LoadData"] as string; Session["LoadData"] = null; if (loadData != null) { apiGameData = AzureFileManager.GetGameData(id); if (apiGameData == null) { throw new InvalidOperationException("No API data returned for game id " + id); } } return(LoadGame(gameFile, id, folder, loadData, apiGameData)); }
public async Task <IHttpActionResult> Upload(long taskId) { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } var task = TaskManager.GetTask(taskId); if (task == null) { return(NotFound()); } var provider = new MultipartMemoryStreamProvider(); await Request.Content.ReadAsMultipartAsync(provider); //var fileManager = new AwsFileManager(); //amazon var fileManager = new AzureFileManager(); foreach (var file in provider.Contents) { var filename = DateTime.Now.ToString("HHmmSS") + file.Headers.ContentDisposition.FileName.Trim('\"'); //var filename = "asdsad"; var buffer = await file.ReadAsByteArrayAsync(); //var filename = model.file.FileName/*file.Headers.ContentDisposition.FileName*/.Trim('\"') + DateTime.Now.ToString("HH:mm:SS"); //var buffer = ReadFully(model.file.InputStream);//await file.ReadAsByteArrayAsync(); //Do whatever you want with filename and its binary data. var result = fileManager.UploadFileAsync(buffer, filename);//pass file stream if (string.IsNullOrEmpty(result.Result)) { return(BadRequest(result.Result)); } //save attachment var attachment = new Attachment() { FileName = filename, FileUrl = result.Result, FileType = 0, TaskId = taskId, LastUpdate = DateTime.Now }; FileManager.SaveAttachment(attachment); } return(Ok()); }
private async Task <string> LoadGameForRequest() { string folder = null; string gameFile = Request["file"]; string id = Request["id"]; bool? isCompiled = null; if (string.IsNullOrEmpty(gameFile)) { if (!string.IsNullOrEmpty(id)) { IFileManager fileManager = FileManagerLoader.GetFileManager(); if (fileManager != null) { var result = await fileManager.GetFileForID(id); gameFile = result.Filename; isCompiled = result.IsCompiled; } } } AzureFileManager.ApiGame apiGameData = null; var loadData = Session["LoadData"] as string; Session["LoadData"] = null; if (loadData != null) { apiGameData = await AzureFileManager.GetGameData(id); if (apiGameData == null) { throw new InvalidOperationException("No API data returned for game id " + id); } } return(LoadGame(gameFile, isCompiled, id, folder, loadData, apiGameData)); }
protected RepositoryBase(string connectionString, string containerPath) { this.ConnectionString = connectionString; this._fileManager = new AzureFileManager(this.ConnectionString, containerPath); }
public SiteRepository(string connectionString) { this._fileManager = new AzureFileManager(connectionString, "site"); }
private string LoadGame(string gameFile, string id, string folder, string loadData, AzureFileManager.ApiGame apiGameData) { if (string.IsNullOrEmpty(gameFile) && loadData == null) { return "No game specified"; } string rootPath = folder ?? ConfigurationManager.AppSettings["GameFolder"]; string libPath = ConfigurationManager.AppSettings["LibraryFolder"]; string filename; if (Config.ReadGameFileFromAzureBlob) { filename = gameFile; } else { filename = WebPlayer.Play.GetGameFilename(gameFile, rootPath); if (filename == null) { return "Invalid filename"; } } List<string> errors; try { m_player = new PlayerHandler(filename, m_buffer); m_player.LoadData = loadData; m_player.ApiGameData = apiGameData; m_player.GameId = m_gameId; m_player.LibraryFolder = libPath; Games[m_gameId] = m_player; m_player.BeginWait += m_player_BeginWait; m_player.BeginPause += m_player_BeginPause; m_player.ShowMenuDelegate = m_player_ShowMenu; m_player.ShowQuestionDelegate = m_player_ShowQuestion; m_player.AddResource += AddResource; m_player.PlayAudio += m_player_PlayAudio; m_player.StopAudio += m_player_StopAudio; if (Config.ReadGameFileFromAzureBlob) { m_player.ResourceUrlRoot = AzureFileManager.GetResourceUrlRoot(id); } if (m_player.Initialise(out errors)) { Resources.AddGame(m_player.Game); // Successful game start return m_player.ClearBuffer(); } } catch (Exception ex) { return "<b>Error loading game:</b><br/>" + ex.Message; } string output = string.Empty; foreach (string error in errors) { output += error + "<br/>"; } return output; }
private string LoadGame(string gameFile, bool?isCompiled, string id, string folder, string loadData, AzureFileManager.ApiGame apiGameData) { if (string.IsNullOrEmpty(gameFile) && loadData == null) { return("No game specified"); } string rootPath = folder ?? ConfigurationManager.AppSettings["GameFolder"]; string libPath = ConfigurationManager.AppSettings["LibraryFolder"]; string filename; if (Config.ReadGameFileFromAzureBlob) { filename = gameFile; } else { filename = WebPlayer.Play.GetGameFilename(gameFile, rootPath); if (filename == null) { return("Invalid filename"); } } List <string> errors; try { m_player = new PlayerHandler(filename, m_buffer); m_player.LoadData = loadData; m_player.ApiGameData = apiGameData; m_player.GameId = m_gameId; m_player.LibraryFolder = libPath; Games[m_gameId] = m_player; m_player.BeginWait += m_player_BeginWait; m_player.BeginPause += m_player_BeginPause; m_player.ShowMenuDelegate = m_player_ShowMenu; m_player.ShowQuestionDelegate = m_player_ShowQuestion; m_player.AddResource += AddResource; m_player.PlayAudio += m_player_PlayAudio; m_player.StopAudio += m_player_StopAudio; if (Config.ReadGameFileFromAzureBlob) { m_player.ResourceUrlRoot = AzureFileManager.GetResourceUrlRoot(id); } if (m_player.Initialise(out errors, isCompiled)) { Resources.AddGame(m_player.Game); // Successful game start return(m_player.ClearBuffer()); } } catch (Exception ex) { return("<b>Error loading game:</b><br/>" + ex.Message); } string output = string.Empty; foreach (string error in errors) { output += error + "<br/>"; } return(output); }
public ImageRepository(string connectionString, string containerPath) { this._fileManager = new AzureFileManager(connectionString, containerPath); }
public ImageRepository(string connectionString) { this._fileManager = new AzureFileManager(connectionString, "pictures"); }
public async Task <object> Register() { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } var provider = new MultipartMemoryStreamProvider(); await Request.Content.ReadAsMultipartAsync(provider); byte[] buffer = null; string filename; string email = string.Empty; string username = string.Empty; string password = string.Empty; string confirmpassword = string.Empty; var fileManager = new AzureFileManager(); foreach (var file in provider.Contents) { if (file.Headers.ContentDisposition.Name.Contains("email")) { email = await file.ReadAsStringAsync(); } else if (file.Headers.ContentDisposition.Name.Contains("username")) { username = await file.ReadAsStringAsync(); } else if (file.Headers.ContentDisposition.Name.Contains("password")) { password = await file.ReadAsStringAsync(); } else if (file.Headers.ContentDisposition.Name.Contains("confirmpassword")) { confirmpassword = await file.ReadAsStringAsync(); } else { filename = file.Headers.ContentDisposition.FileName.Trim('\"'); buffer = await file.ReadAsByteArrayAsync(); } } var model = new RegisterBindingModel() { email = email, username = username, password = password, confirmpassword = confirmpassword, }; logger.Log(LogLevel.Info, $"Register({model.email})"); if (!ModelState.IsValid) { logger.Log(LogLevel.Error, $"Register({model.email}). Error: model state is not invalid"); return(BadRequest(ModelState)); } //var user = new ApplicationUser() { UserName = model.Email, Email = model.Email }; var userInfo = UserManager2.CreateUserInfo("", username, "", "", ""); var user = new User() { UserName = model.email, PasswordHash = model.password, IsActive = true, UserInfoId = userInfo.Id, UserType = (int)UserTypeEnum.Client, AccountPlanId = (int)AccountPlanEnum.Start, Registration = DateTime.Now, LastUpdate = DateTime.Now }; IdentityResult result = await UserManager.CreateAsync(user, model.password); if (!result.Succeeded) { return(GetErrorResult(result)); } user = UserManager2.Create(user); //SignInManager.SignIn(user, false, false); ClaimsIdentity oAuthIdentity = await UserManager.CreateIdentityAsync(user, OAuthDefaults.AuthenticationType); ClaimsIdentity cookiesIdentity = await UserManager.CreateIdentityAsync(user, CookieAuthenticationDefaults.AuthenticationType); AuthenticationProperties properties = ApplicationOAuthProvider.CreateProperties(user.UserName); Authentication.SignIn(properties, oAuthIdentity, cookiesIdentity); var token = GetToken(model.email, model.password); //avatar var uploadResult = fileManager.UploadFileAsync(buffer, $"{user.Id}.png");//pass file stream if (string.IsNullOrEmpty(uploadResult.Result)) { return(BadRequest(uploadResult.Result)); } var info = UserManager2.FindUserInfo(user.UserInfoId); info.PhotoUrl = uploadResult.Result; UserManager2.UpdateInfo(info); try { GroupManager.CreateFavorites(user.Id); } catch (Exception ex) { } var usermodel = UserManager2.GetUserModel(user.UserName); return(new { token = token, user = usermodel }); }