public async Task <BaseResult <string> > UploadContract(UploadViewModel request) { try { if (Environment.OSVersion.Platform != PlatformID.Unix) { return(new BaseResult <string>() { Result = await fileOperationHelper.UploadContract(request).ConfigureAwait(false) }); } else { var baseDir = Path.Combine(Constants.DocumentBaseDirectory); smbFileOperationHelper.CreateFolder(baseDir); var hotelDir = Path.Combine(baseDir, request.HotelCode); smbFileOperationHelper.CreateFolder(hotelDir); var contractsDir = Path.Combine(hotelDir, Constants.DocumentContractsDirectory); smbFileOperationHelper.CreateFolder(contractsDir); var rand = new Random(); var fileToUpload = Path.Combine(contractsDir, rand.Next().ToString(CultureInfo.InvariantCulture)); smbFileOperationHelper.CreateFile(fileToUpload, request.Extension.Value, request.Bytes.ToArray(), true); return(new BaseResult <string>() { Result = fileToUpload + Constants.FileExtensions.GetFileExtentions(request.Extension.Value) }); } } catch (Exception e) { return(new BaseResult <string>() { IsError = true, ExceptionMessage = e }); } }