public async Task CreateFile(string branchName, string path, HttpRequestMessage data) { var fileName = Path.GetFileName(path); //Create meta to store it in elasticsearch var id = Guid.NewGuid().ToString("N"); var file = new Metafile { Id = id, CreatedOn = DateTime.UtcNow, Filename = fileName, Path = path == "" ? "" : path, BranchId = branchName, MD5Hash = "" }; await _assetsStorage.UploadFile(branchName, path, file, data); // Check if possible to create file before upload try { await _assetsStorage.CreateFile(file); } catch (BranchException) { var resp = new HttpResponseMessage(System.Net.HttpStatusCode.Conflict) { Content = new StringContent($"{branchName} already exist !"), ReasonPhrase = $"{branchName} already exist !" }; throw new HttpResponseException(resp); } catch (FileException) { var resp = new HttpResponseMessage(System.Net.HttpStatusCode.Conflict) { Content = new StringContent($"File : {path} already exist !"), ReasonPhrase = $"File : {path} already exist !" }; throw new HttpResponseException(resp); } catch (ElasticsearchException) { var resp = new HttpResponseMessage(System.Net.HttpStatusCode.InternalServerError) { Content = new StringContent($"Internal data base error please check server logs"), ReasonPhrase = $"Internal data base error please check server logs" }; throw new HttpResponseException(resp); } }