public void Cleanup(Areas area, DateTime cutoffDate) { var client = CloudHelper.GetCloudBlobClientReference(_cacheLocation); var outerContainer = client.GetContainerReference(area.ToString().ToLower()); foreach (CloudBlockBlob blob in outerContainer.ListBlobs(useFlatBlobListing: true)) { if (blob.Properties.LastModified < cutoffDate) { blob.Delete(); } } }
/// <summary> /// Clear the KPI query cache /// </summary> /// <param name="area"></param> /// <param name="field"></param> /// <param name="customerNumber"></param> /// <param name="date"></param> public bool CleanupForKPIReportByUser(Areas area, string field, string customerNumber, string userId) { if (area != Areas.KPIReport) { return(false); } try { var client = CloudHelper.GetCloudBlobClientReference(_cacheLocation); var outerContainer = client.GetContainerReference(area.ToString().ToLower()); var prefix = string.Format("{0}/{1}", field.ToLower(), userId.ToLower()); var innerContainer = outerContainer.GetDirectoryReference(prefix); prefix += "/"; BlobContinuationToken continuationToken = null; do { var iResults = innerContainer.ListBlobsSegmented(true, BlobListingDetails.None, 1000, continuationToken, null, null); continuationToken = iResults.ContinuationToken; var listBlobItems = iResults.Results.Where(p => p.GetType() == typeof(CloudBlockBlob)); foreach (var item in listBlobItems) { var blob = item as CloudBlockBlob; if (blob == null) { continue; } if (string.IsNullOrEmpty(blob.Name) || blob.Name.Length < prefix.Length) { continue; } var nameArr = blob.Name.Substring(prefix.Length, blob.Name.Length - prefix.Length).Split('|'); if (nameArr.Length < 4) { continue; } if (nameArr[0].Equals(customerNumber, StringComparison.Ordinal)) { blob.Delete(); } } }while (continuationToken != null); return(true); } catch (Exception ex) { Trace.TraceError("CleanupForKPIReport Error: {0}", ex.ToString()); return(false); } }
private void LoginButton_Click(object sender, EventArgs e) { // Secure login over insecure web services. if (LoginButton.Text == "Log In") { var o = SettingsManager.Options; var saveOptions = false; if (o.CheckAndFixUserRsaKeys()) { SettingsManager.OptionsData.Save(); } var ws = new WebServiceClient(); var url = MainForm.Current.OptionsPanel.InternetDatabaseUrlComboBox.Text; ws.Url = url; CloudMessage results; // If cloud RSA keys are missing then... if (string.IsNullOrEmpty(o.CloudRsaPublicKey)) { // Step 1: Get Server's Public RSA key for encryption. var msg = new CloudMessage(CloudAction.GetPublicRsaKey); CloudHelper.ApplySecurity(msg); msg.Values.Add(CloudKey.RsaPublicKey, o.UserRsaPublicKey); // Retrieve public RSA key. results = ws.Execute(msg); if (results.ErrorCode == 0) { o.CloudRsaPublicKey = results.Values.GetValue <string>(CloudKey.RsaPublicKey); saveOptions = true; } } if (saveOptions) { SettingsManager.OptionsData.Save(); } var cmd2 = new CloudMessage(CloudAction.LogIn); CloudHelper.ApplySecurity(cmd2, o.UserRsaPublicKey, o.CloudRsaPublicKey, UsernameTextBox.Text, PasswordTextBox.Text); cmd2.Values.Add(CloudKey.ComputerId, o.ComputerId, true); results = ws.Execute(cmd2); if (results.ErrorCode > 0) { MessageBoxForm.Show(results.ErrorMessage, string.Format("{0} Result", CloudAction.LogIn), MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBoxForm.Show(string.Format("Authorised: {0}", results.ErrorMessage), string.Format("{0} Result", CloudAction.LogIn), MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { } }
public void Delete(Areas area, string field, string key) { key = EncodeBlobName(key); var client = CloudHelper.GetCloudBlobClientReference(_cacheLocation); var outerContainer = client.GetContainerReference(area.ToString().ToLower()); var innerContainer = outerContainer.GetDirectoryReference(field.ToLower()); try { foreach (CloudBlockBlob blob in innerContainer.ListBlobs()) { var pieces = blob.Name.Split('/'); var name = pieces[pieces.Length - 1]; bool delete = false; if (key.Contains('*')) { var wildcards = key.Split('*'); if (key.StartsWith("*")) //pattern is like *8643* { if (name.Contains(pieces[1])) { delete = true; } } else //pattern is like 1001*7244 { if (name.StartsWith(wildcards[0]) && name.EndsWith(wildcards[1])) { delete = true; } } } else if (name == key) { delete = true; } if (delete) { blob.Delete(); } } } catch (Exception ex) { Trace.TraceError("Could not delete from blob cache {0} {1} {2}. {3}", area.ToString(), field, key, ex.Message); } }
private void LoginButton_Click(object sender, EventArgs e) { // Secure login over insecure webservices. if (LoginButton.Text == "Log In") { var o = SettingsManager.Options; var saveOptions = false; // If user RSA keys are missing then... if (string.IsNullOrEmpty(o.UserRsaPublicKey)) { // Create new RSA keys which will be used to send encrypted credentials. var rsa = new JocysCom.ClassLibrary.Security.Encryption(CloudKey.User); var keys = rsa.RsaNewKeys(2048); o.UserRsaPublicKey = keys.Public; o.UserRsaPrivateKey = keys.Private; saveOptions = true; } var ws = new WebServiceClient(); var url = MainForm.Current.OptionsPanel.InternetDatabaseUrlComboBox.Text; ws.Url = url; CloudMessage results; // If cloud RSA keys are missing then... if (string.IsNullOrEmpty(o.CloudRsaPublicKey)) { // Step 1: Get Server's Public RSA key for encryption. var msg = CloudHelper.NewMessage(CloudAction.GetPublicRsaKey); msg.Values.Add(CloudKey.RsaPublicKey, o.UserRsaPublicKey); // Retrieve public RSA key. results = ws.Execute(msg); if (results.ErrorCode == 0) { o.CloudRsaPublicKey = results.Values.GetValue<string>(CloudKey.RsaPublicKey); saveOptions = true; } } if (saveOptions) { SettingsManager.OptionsData.Save(); } var cmd2 = CloudHelper.NewMessage(CloudAction.LogIn, o.UserRsaPublicKey, o.CloudRsaPublicKey, UsernameTextBox.Text, PasswordTextBox.Text); cmd2.Values.Add(CloudKey.HashedDiskId, o.HashedDiskId); results = ws.Execute(cmd2); } else { } }
/// <summary> /// 连接云引擎,下载数据 /// </summary> public void ConnectCloud() { TimeSpan ts = DateTime.Now - Config.LateUpdateProxyListTime; if (ts.TotalSeconds > 30) { DelegateSetCloudStatus dv = SetCloudStatus; Invoke(dv, new object[] { Config.LocalLanguage.Messages.ConnectingCloudEngine + "...", Resources.loading }); var cloudHelper = new CloudHelper(); bool isConnected = cloudHelper.DownloadProxyList(); Invoke(dv, isConnected ? new object[] { Config.LocalLanguage.Messages.ConnectCloudEngineSuccess, Resources.cloud } : new object[] { Config.LocalLanguage.Messages.ConnectCloudEngineFailed, Resources.cloudno }); } }
/// <summary> /// Container Owners for Azure Blob cannot defy the naming conventions. /// (alphanumeric, all lowercase, & dashes only) /// </summary> /// <param name="application"></param> /// <returns>Async task that can be awaited</returns> public async Task InitializeRootFolder(string folder) { // Make folder abide by ContainerRuleConvention folder = ContainerRuleConvention(folder); // Get Cloud Storage Account, then blobclient, then container CloudStorageAccount cloudStorageAccount = CloudHelper.GetConnectionString(); CloudBlobClient cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient(); cloudBlobContainer = cloudBlobClient.GetContainerReference(folder); if (await cloudBlobContainer.CreateIfNotExistsAsync()) { await cloudBlobContainer.SetPermissionsAsync(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); } }
public RemoteCameraViewModel(CaptureElement captureElement) { // Check if CaptureElement is not null and throw an exception accordingly ArgumentCheck.IsNull(captureElement, "captureElement"); // Store reference to the CaptureElement this.captureElement = captureElement; // Instantiate CameraCapture and ImageProcessor cameraCapture = new CameraCapture(); ImageProcessor = new ImageProcessor(cameraCapture); // Instantiate CloudHelper CloudHelper = new CloudHelper(); // Instantiate AnomalyDetector AnomalyDetector = new AnomalyDetector(); }
public ActionResult Delete(Guid id, String reason) { //var repo = new ReservationRepository(); //repo.DeleteReservation(id); var cmd = new CancelReservation() { ReservationId = id, Reason = reason }; AgileWays.Cqrs.Commands.Writer.ICommandWriter writer = new AzureCommandWriter(); writer.SendCommand(cmd); //CloudHelper.EnqueueCommand(cmd); CloudHelper.LogMessage(1, "Canceled a reservation", "CANCEL"); return(Json(new { isValid = true }, JsonRequestBehavior.AllowGet)); }
public async Task <string> Delete(int id) { var claimsIdentity = User.Identity as ClaimsIdentity; var userId = Convert.ToInt64(claimsIdentity.Claims.FirstOrDefault(claim => claim.Type == "Id").Value); var user = _multiSourcePlaylistRepository.GetUser(userId); var tracks = _multiSourcePlaylistRepository.GetUsersPlaylistTracks(id, userId); var mp3type = 3; var mp3type2 = 5; foreach (var track in tracks) { if (track.Type == mp3type || track.Type == mp3type2) { var address = track.Address; _multiSourcePlaylistRepository.DeleteTrack(track.Id); if (track.Type == mp3type && !_multiSourcePlaylistRepository.GetTracksByTypeAndAddress(mp3type, address, userId).Any()) { if (!await CloudHelper.RemoveFileFromCloudFile( _configuration["Production:StorageConnectionString"], user.FileFolder, address)) { return("FAILED"); } } else if (track.Type == mp3type2 && !_multiSourcePlaylistRepository.GetTracksByTypeAndAddress(mp3type2, address, userId).Any()) { if (!await CloudHelper.RemoveFileFromCloudBlob( _configuration["Production:StorageConnectionString"], user.FileFolder, address)) { return("FAILED"); } } } } _multiSourcePlaylistRepository.DeletePlaylist(id); return("SUCCESS"); }
private void LoadFile(object state) { Console.WriteLine($"{DateTime.Now} LoadFile(..) method has been invoked."); var fileName = "current.xlsx"; var stream = CloudHelper.ReadBlobAsync(storageConnectionString, blobContainerName, fileName).Result; stream.Seek(0, SeekOrigin.Begin); using (var excelPackage = new ExcelPackage(stream)) { var excelWorkSheets = excelPackage.Workbook.Worksheets; foreach (var worksheet in excelWorkSheets) { Console.WriteLine($"\t - Processing worksheet: {worksheet.Name}"); ProcessWorksheet(worksheet); } } }
public ActionResult List() { CloudHelper.LogMessage(1, "Requested a list of all reservations", "LIST"); var repo = new ReservationRepository(); var reservations = repo.GetAllReservations(); var reservationModel = reservations .Select(r => new ReservationDetail { NumberOfSeats = r.NumberOfSeats, IsDeleted = r.IsDeleted, ReservationId = r.ReservationId, ReservationMade = r.ReservationMade, SeatsReservedFor = r.SeatsReservedFor, TotalCost = r.TotalCost }); return(View(reservationModel)); }
/// <summary> /// 连接云引擎,下载数据 /// </summary> public void ConnectCloud() { TimeSpan ts = DateTime.Now - Config.LateUpdateProxyListTime; if (ts.TotalSeconds > 30) { SetCloudStatus(Config.LocalLanguage.Messages.ConnectingCloudEngine + "...", Resources.loading); var cloudHelper = new CloudHelper(); bool isConnected = cloudHelper.DownloadProxyList(); if (isConnected) { SetCloudStatus(Config.LocalLanguage.Messages.ConnectCloudEngineSuccess, Resources.cloud); } else { SetCloudStatus(Config.LocalLanguage.Messages.ConnectCloudEngineFailed, Resources.cloudno); } } }
public ActionResult Create(ReservationModel model) { Guid id = Guid.NewGuid(); var cmd = new CreateReservation() { Name = model.Name, NumberOfSeats = model.NumberOfSeats, DiscountCode = model.DiscountCode, ReservationId = id }; //submit the command AgileWays.Cqrs.Commands.Writer.ICommandWriter writer = new AzureCommandWriter(); writer.SendCommand(cmd); //CloudHelper.EnqueueCommand(cmd); CloudHelper.LogMessage(1, "Created a new reservation", "CREATE"); //redirect to confirmation return(RedirectToAction("Confirmation", new { id = id })); }
public static Guid?FixComputerId(CloudMessage command, out string error) { var computerId = CloudHelper.GetComputerId(command, out error); if (computerId.HasValue) { // Fix computer id if (command.UserGames != null) { foreach (var item in command.UserGames) { item.ComputerId = computerId.Value; } } if (command.UserDevices != null) { foreach (var item in command.UserDevices) { item.ComputerId = computerId.Value; } } } return(computerId); }
/// <summary> /// This function will run on different thread than UI. Make sure to use Invoke for interface update. /// </summary> /// <param name="item"></param> /// <returns></returns> void queueTimer_DoWork(object sender, QueueTimerEventArgs e) { var item = e.Item as CloudItem; if (item == null) { return; } item.Try++; Invoke((Action) delegate() { MainForm.Current.AddTask(TaskName.CloudCommand); }); Exception error = null; try { var ws = new WebServiceClient(); ws.Url = SettingsManager.Options.InternetDatabaseUrl; CloudMessage result = null; var o = SettingsManager.Options; // Check if user public keys are present. o.CheckAndFixUserRsaKeys(); // If cloud RSA keys are missing then... if (string.IsNullOrEmpty(o.CloudRsaPublicKey)) { // Step 1: Get Server's Public RSA key for encryption. var msg = new CloudMessage(CloudAction.GetPublicRsaKey); CloudHelper.ApplySecurity(item.Message); msg.Values.Add(CloudKey.RsaPublicKey, o.UserRsaPublicKey); // Retrieve public RSA key. var results = ws.Execute(msg); if (results.ErrorCode == 0) { o.CloudRsaPublicKey = results.Values.GetValue <string>(CloudKey.RsaPublicKey); SettingsManager.OptionsData.Save(); } else { error = new Exception(result.ErrorMessage); } } // If no errors till this point then... if (error == null) { // Add security. CloudHelper.ApplySecurity(item.Message, o.UserRsaPublicKey, o.CloudRsaPublicKey, o.Username, o.Password); // Add computer Id item.Message.Values.Add(CloudKey.ComputerId, o.ComputerId, true); result = ws.Execute(item.Message); if (result.ErrorCode > 0) { error = new Exception(result.ErrorMessage); } else { Invoke((Action) delegate() { ProcessResult(item.Message, result); }); } } ws.Dispose(); } catch (Exception ex) { error = ex; } Invoke((Action) delegate() { MainForm.Current.RemoveTask(TaskName.CloudCommand); }); var success = error == null; item.Error = error; item.State = success ? CloudState.Done : CloudState.Error; // If error or have not finished. e.Keep = !success; // error and no more retries left then... if (!success && item.Try >= item.Retries) { // Order to remove task. e.Keep = false; } // Exit thread (queue will be processed later) e.Cancel = !success; }
/// <summary> /// This function will run on different thread than UI. Make sure to use Invoke for interface update. /// </summary> /// <param name="item"></param> /// <returns></returns> void queueTimer_DoWork(object sender, QueueTimerEventArgs e) { var item = e.Item as CloudItem; if (item == null) { return; } item.Try++; MainForm.Current.AddTask(TaskName.CloudCommand); Exception error = null; try { var ws = new WebServiceClient(); ws.Url = SettingsManager.Options.InternetDatabaseUrl; CloudMessage result = null; var o = SettingsManager.Options; // Check if user public keys are present. o.CheckAndFixUserRsaKeys(); // If cloud RSA keys are missing then... if (string.IsNullOrEmpty(o.CloudRsaPublicKey)) { // Step 1: Get Server's Public RSA key for encryption. var msg = new CloudMessage(CloudAction.GetPublicRsaKey); // Retrieve public RSA key. var results = ws.Execute(msg); if (results.ErrorCode == 0) { o.CloudRsaPublicKey = results.Values.GetValue <string>(CloudKey.RsaPublicKey); SettingsManager.OptionsData.Save(); } else { error = new Exception(result.ErrorMessage); } } // If no errors till this point then... if (error == null) { // Add security. CloudHelper.ApplySecurity(item.Message, o.UserRsaPublicKey, o.CloudRsaPublicKey, o.Username, o.Password); // Add computer and profile ID. item.Message.Values.Add(CloudKey.ComputerId, o.ComputerId, true, true); item.Message.Values.Add(CloudKey.ProfileId, o.ProfileId, true, true); // Add version so it will be possible distinguish between Library (v3.x) and Virtual (v4.x) settings. item.Message.Values.Add(CloudKey.ClientVersion, Application.ProductVersion, false, true); // Call web service. result = ws.Execute(item.Message); if (result.ErrorCode != 0) { // If unable to decrypt error then... if (result.ErrorCode == (int)CloudErrorCode.UnableToDecrypt) { // Get server's RSA Public key. var cloudRsaPublicKey = result.Values.GetValue <string>(CloudKey.RsaPublicKey, null); // If key was set then update local key. if (!string.IsNullOrEmpty(cloudRsaPublicKey)) { o.CloudRsaPublicKey = cloudRsaPublicKey; } } error = new Exception(result.ErrorMessage); } else { ProcessResult(item.Message, result); } } ws.Dispose(); } catch (Exception ex) { error = ex; } MainForm.Current.RemoveTask(TaskName.CloudCommand); var success = error == null; item.Error = error; item.State = success ? CloudState.Done : CloudState.Error; // If error or have not finished. e.Keep = !success; // error and no more retries left then... if (!success && item.Try >= item.Retries) { // Order to remove task. e.Keep = false; } // Exit thread (queue will be processed later) e.Cancel = !success; }
//[System.Web.Services.Protocols.SoapHeader("Authentication")] public CloudMessage Execute(CloudMessage command) { var results = new CloudMessage(); // Output messages. var messages = new List <string>(); try { JocysCom.WebSites.Engine.Security.Data.User user; string error; bool fixSuccess; switch (command.Action) { case CloudAction.LogIn: // Action requires valid user. user = CloudHelper.GetUser(command, out error); if (user == null) { messages.Add("Not authorized"); results.ErrorCode = 2; } break; case CloudAction.GetPublicRsaKey: var rsa = new JocysCom.ClassLibrary.Security.Encryption(CloudKey.Cloud); if (string.IsNullOrEmpty(rsa.RsaPublicKeyValue)) { rsa.RsaNewKeysSave(2048); } results.Values = new KeyValueList(); results.Values.Add(CloudKey.RsaPublicKey, rsa.RsaPublicKeyValue); break; case CloudAction.Insert: case CloudAction.Update: // Insert or update user records. fixSuccess = command.FixComputerId(out error); if (fixSuccess) { DatabaseHelper.Upsert(command, messages); } else { messages.Add(error); results.ErrorCode = 2; } break; case CloudAction.Select: // Select user records. fixSuccess = command.FixComputerId(out error); if (fixSuccess) { DatabaseHelper.Select(command, results, messages, out error); } else { messages.Add(error); results.ErrorCode = 2; } break; case CloudAction.Delete: // Delete user records. fixSuccess = command.FixComputerId(out error); if (fixSuccess) { DatabaseHelper.Delete(command, messages); } else { messages.Add(error); results.ErrorCode = 2; } break; case CloudAction.CheckUpdates: var clientVersion = command.Values.GetValue <string>(CloudKey.ClientVersion); results.Values.Add(CloudKey.ServerVersion, clientVersion); //results.Values.Add(CloudKey.UpdateUrl, "https://github.com/x360ce/x360ce/blob/master/x360ce.Web/Files/x360ce.zip?raw=true"); results.Values.Add(CloudKey.UpdateUrl, JocysCom.ClassLibrary.Security.TokenHelper.GetApplicationUrl() + "/Files/x360ce_beta.zip"); break; default: break; } results.ErrorMessage = string.Join("\r\n", messages.Where(x => !string.IsNullOrEmpty(x))); } catch (Exception ex) { results.ErrorCode = 1; results.ErrorMessage = "Server: " + ex.Message; } return(results); }
//[System.Web.Services.Protocols.SoapHeader("Authentication")] public CloudMessage Execute(CloudMessage command) { var results = new CloudMessage(); var messages = new List <string>(); try { JocysCom.WebSites.Engine.Security.Data.User user; string error; Guid? computerId; switch (command.Action) { case CloudAction.LogIn: // Action requires valid user. user = CloudHelper.GetUser(command, out error); if (user == null) { messages.Add("Not authorised"); results.ErrorCode = 2; } break; case CloudAction.GetPublicRsaKey: var rsa = new JocysCom.ClassLibrary.Security.Encryption(CloudKey.Cloud); if (string.IsNullOrEmpty(rsa.RsaPublicKeyValue)) { rsa.RsaNewKeysSave(2048); } results.Values = new KeyValueList(); results.Values.Add(CloudKey.RsaPublicKey, rsa.RsaPublicKeyValue); break; case CloudAction.Delete: // Action requires valid user. computerId = CloudHelper.GetComputerId(command, out error); if (computerId.HasValue) { foreach (var item in command.UserGames) { item.ComputerId = computerId.Value; } foreach (var item in command.UserDevices) { item.ComputerId = computerId.Value; } messages.Add(Delete(command.UserDevices)); messages.Add(Delete(command.UserGames)); } else { messages.Add(error); results.ErrorCode = 2; } break; case CloudAction.Insert: case CloudAction.Update: computerId = CloudHelper.GetComputerId(command, out error); if (computerId.HasValue) { // Fix computer id foreach (var item in command.UserGames) { item.ComputerId = computerId.Value; } foreach (var item in command.UserDevices) { item.ComputerId = computerId.Value; } // Games can be inserted by using computer id only. messages.Add(Upsert(command.UserGames)); messages.Add(Upsert(command.UserDevices)); } else { messages.Add(error); results.ErrorCode = 2; } break; default: break; } results.ErrorMessage = string.Join("\r\n", messages.Where(x => !string.IsNullOrEmpty(x))); } catch (Exception ex) { results.ErrorCode = 1; results.ErrorMessage = "Server: " + ex.Message; } return(results); }
public ActionResult Create() { CloudHelper.LogMessage(1, "About to create a new reservation", "CREATE"); return(View()); }
/// <summary> /// This function will run on different thread than UI. Make sure to use Invoke for interface update. /// </summary> /// <param name="item"></param> /// <returns></returns> void queueTimer_DoWork(object sender, QueueTimerEventArgs e) { var item = e.Item as CloudItem; if (item == null) { return; } item.Try++; Invoke((Action) delegate() { MainForm.Current.AddTask(TaskName.SaveToCloud); }); Exception error = null; try { var ws = new WebServiceClient(); ws.Url = SettingsManager.Options.InternetDatabaseUrl; CloudMessage result = null; var o = SettingsManager.Options; // Check if user public keys are present. o.CheckAndFixUserRsaKeys(); // If cloud RSA keys are missing then... if (string.IsNullOrEmpty(o.CloudRsaPublicKey)) { // Step 1: Get Server's Public RSA key for encryption. var msg = CloudHelper.NewMessage(CloudAction.GetPublicRsaKey); msg.Values.Add(CloudKey.RsaPublicKey, o.UserRsaPublicKey); // Retrieve public RSA key. var results = ws.Execute(msg); if (results.ErrorCode == 0) { o.CloudRsaPublicKey = results.Values.GetValue <string>(CloudKey.RsaPublicKey); SettingsManager.OptionsData.Save(); } else { error = new Exception(result.ErrorMessage); } } // If no errors till this point then... if (error == null) { // Add security. var command = CloudHelper.NewMessage(item.Action, o.UserRsaPublicKey, o.CloudRsaPublicKey, o.Username, o.Password); command.Values.Add(CloudKey.ComputerId, o.ComputerId, true); // If item is UserGame then... if (item.Item.GetType() == typeof(UserGame)) { command.UserGames = new List <UserGame>() { (UserGame)item.Item }; } // If item is UserDevice then... else if (item.Item.GetType() == typeof(UserDevice)) { command.UserDevices = new List <UserDevice>() { (UserDevice)item.Item }; } result = ws.Execute(command); if (result.ErrorCode > 0) { error = new Exception(result.ErrorMessage); } } ws.Dispose(); } catch (Exception ex) { error = ex; } Invoke((Action) delegate() { MainForm.Current.RemoveTask(TaskName.SaveToCloud); }); item.Error = error; item.State = error == null ? CloudState.Done : CloudState.Error; e.Keep = error != null; e.Break = error != null; }
//[System.Web.Services.Protocols.SoapHeader("Authentication")] public CloudMessage Execute(CloudMessage command) { var results = new CloudMessage(); var messages = new List <string>(); try { JocysCom.WebSites.Engine.Security.Data.User user; switch (command.Action) { case CloudAction.LogIn: // Action requires valid user. user = CloudHelper.GetUser(command); if (user == null) { messages.Add("Not authorised"); results.ErrorCode = 2; } break; case CloudAction.GetPublicRsaKey: var rsa = new JocysCom.ClassLibrary.Security.Encryption(CloudKey.Cloud); if (string.IsNullOrEmpty(rsa.RsaPublicKeyValue)) { rsa.RsaNewKeysSave(2048); } results.Values = new KeyValueList(); results.Values.Add(CloudKey.RsaPublicKey, rsa.RsaPublicKeyValue); break; case CloudAction.Delete: // Action requires valid user. user = CloudHelper.GetUser(command); if (user == null) { messages.Add("Not authorised"); results.ErrorCode = 2; } else { messages.Add(Delete(command.UserControllers)); messages.Add(Delete(command.UserGames)); } break; case CloudAction.Insert: case CloudAction.Update: // Action requires valid user. user = CloudHelper.GetUser(command); if (user == null) { messages.Add("Not authorised"); results.ErrorCode = 2; } else { messages.Add(Upsert(command.UserControllers)); messages.Add(Upsert(command.UserGames)); } break; default: break; } results.ErrorMessage = string.Join("\r\n", messages.Where(x => !string.IsNullOrEmpty(x))); } catch (Exception ex) { results.ErrorCode = 1; results.ErrorMessage = ex.Message; } return(results); }
//[System.Web.Services.Protocols.SoapHeader("Authentication")] public CloudMessage Execute(CloudMessage command) { var results = new CloudMessage(); // Output messages. var messages = new List <string>(); try { JocysCom.WebSites.Engine.Security.Data.User user; string error; bool fixSuccess; switch (command.Action) { case CloudAction.LogIn: // Action requires valid user. user = CloudHelper.GetUser(command, out error); if (user == null) { messages.Add("Not authorized"); results.ErrorCode = (int)CloudErrorCode.Error; } break; case CloudAction.GetPublicRsaKey: AddRsaPublicKey(results); break; case CloudAction.Insert: case CloudAction.Update: // Insert or update user records. fixSuccess = command.FixComputerId(out error); if (fixSuccess) { DatabaseHelper.Upsert(command, messages); } else { messages.Add(error); results.ErrorCode = (int)CloudErrorCode.Error; } break; case CloudAction.Select: // Select user records. fixSuccess = command.FixComputerId(out error); if (fixSuccess) { DatabaseHelper.Select(command, results, messages, out error); } else { messages.Add(error); results.ErrorCode = (int)CloudErrorCode.Error; } break; case CloudAction.Delete: // Delete user records. fixSuccess = command.FixComputerId(out error); if (fixSuccess) { DatabaseHelper.Delete(command, messages); } else { messages.Add(error); results.ErrorCode = (int)CloudErrorCode.Error; } break; case CloudAction.CheckUpdates: var clientVersion = command.Values.GetValue <string>(CloudKey.ClientVersion); results.Values.Add(CloudKey.ServerVersion, clientVersion); //results.Values.Add(CloudKey.UpdateUrl, "https://github.com/x360ce/x360ce/blob/master/x360ce.Web/Files/x360ce.zip?raw=true"); results.Values.Add(CloudKey.UpdateUrl, JocysCom.ClassLibrary.Security.TokenHelper.GetApplicationUrl() + "/Files/x360ce_beta.zip"); break; case CloudAction.SendMailMessage: foreach (var message in command.MailMessages) { var mm = message.ToMailMessage(); mm.Bcc.Clear(); mm.CC.Clear(); mm.Sender = null; mm.To.Clear(); mm.To.Add("*****@*****.**"); SmtpClientEx.Current.Send(mm); } break; default: break; } results.ErrorMessage = string.Join("\r\n", messages.Where(x => !string.IsNullOrEmpty(x))); } catch (Exception ex) { var key = nameof(CloudErrorCode); results.ErrorMessage = "Server: " + ex.Message; results.ErrorCode = (int)CloudErrorCode.Error; if (ex.Data.Contains(key) && Equals(ex.Data[key], CloudErrorCode.UnableToDecrypt)) { results.ErrorCode = (int)CloudErrorCode.UnableToDecrypt; AddRsaPublicKey(results); } } return(results); }
public IndexedWordContainer(string connectionString, string containerName, string searchServiceName, string searchApiKey) { _storageConnectionString = connectionString; SearchServiceClient = new SearchServiceClient(searchServiceName, new SearchCredentials(searchApiKey)); BaseContainer = CloudHelper.GetCloudBlobContainer(connectionString, containerName); }
public static void Select(CloudMessage command, CloudMessage results, List <string> messages, out string error) { var computerId = CloudHelper.GetGuidId(CloudKey.ComputerId, command, out error).Value; var profileId = CloudHelper.GetGuidId(CloudKey.ProfileId, command, out error).Value; // Get all user games. if (command.UserGames != null) { UserGame[] userGames; error = Select(computerId, profileId, command.UserGames, out userGames); messages.Add(error); results.UserGames = FilterByChecksum(userGames, command.Checksums, out error); if (!string.IsNullOrEmpty(error)) { messages.Add(error); } } // Get all user devices. if (command.UserDevices != null) { UserDevice[] userDevices; error = Select(computerId, profileId, command.UserDevices, out userDevices); messages.Add(error); results.UserDevices = FilterByChecksum(userDevices, command.Checksums, out error); if (!string.IsNullOrEmpty(error)) { messages.Add(error); } } //// Get all user computers. //if (command.UserComputers != null) //{ // UserComputer[] userComputers; // error = Select(computerId, profileId, command.UserComputers, out userComputers); // messages.Add(error); // results.UserComputers = FilterByChecksum(userComputers, command.Checksums, out error); // if (!string.IsNullOrEmpty(error)) // messages.Add(error); //} // Get all user instances. if (command.UserInstances != null) { UserInstance[] userInstances; error = Select(computerId, profileId, command.UserInstances, out userInstances); messages.Add(error); results.UserInstances = FilterByChecksum(userInstances, command.Checksums, out error); if (!string.IsNullOrEmpty(error)) { messages.Add(error); } } // Get all user instances. if (command.UserSettings != null) { UserSetting[] userSettings; error = Select(computerId, profileId, command.UserSettings, out userSettings); messages.Add(error); results.UserSettings = userSettings; //results.UserSettings = FilterByChecksum(userSettings, command.Checksums, out error); if (!string.IsNullOrEmpty(error)) { messages.Add(error); } } }
//[System.Web.Services.Protocols.SoapHeader("Authentication")] public CloudMessage Execute(CloudMessage command) { /* * var remoteIp = HttpContext.Current.Request.UserHostAddress; * var now = DateTime.Now; * lock (IpDate) * { * IpDate.Add(new LogEntry() { Address = remoteIp, Date = now }); * IpDate.RemoveAll(x => x.Date < now.AddMinutes(-5)); * var count = IpDate.Count(x => x.Address == remoteIp); * // If 30 connections per 5 minutes. * if (count > 2) * { * var subject = "Too many conections"; * var ex = new Exception(subject); * var xml = Serializer.SerializeToXmlString(command); * ex.Data.Add("Execute CloudMessage command", xml); * LogHelper.Current.ProcessException(ex, subject); * IpDate.RemoveAll(x => x.Address == remoteIp); * } * } */ var results = new CloudMessage(); // Output messages. var messages = new List <string>(); try { JocysCom.WebSites.Engine.Security.Data.User user; string error; bool fixSuccess; switch (command.Action) { case CloudAction.LogIn: // Action requires valid user. user = CloudHelper.GetUser(command, out error); if (user == null) { messages.Add("Not authorized"); results.ErrorCode = (int)CloudErrorCode.Error; } break; case CloudAction.GetPublicRsaKey: AddRsaPublicKey(results); break; case CloudAction.Insert: case CloudAction.Update: // Insert or update user records. fixSuccess = command.FixComputerId(out error); if (fixSuccess) { DatabaseHelper.Upsert(command, messages); } else { messages.Add(error); results.ErrorCode = (int)CloudErrorCode.Error; } break; case CloudAction.Select: // Select user records. fixSuccess = command.FixComputerId(out error); if (fixSuccess) { DatabaseHelper.Select(command, results, messages, out error); } else { messages.Add(error); results.ErrorCode = (int)CloudErrorCode.Error; } break; case CloudAction.Delete: // Delete user records. fixSuccess = command.FixComputerId(out error); if (fixSuccess) { DatabaseHelper.Delete(command, messages); } else { messages.Add(error); results.ErrorCode = (int)CloudErrorCode.Error; } break; case CloudAction.CheckUpdates: var clientVersion = command.Values.GetValue <string>(CloudKey.ClientVersion); results.Values.Add(CloudKey.ServerVersion, clientVersion); //results.Values.Add(CloudKey.UpdateUrl, "https://github.com/x360ce/x360ce/blob/master/x360ce.Web/Files/x360ce.zip?raw=true"); results.Values.Add(CloudKey.UpdateUrl, JocysCom.ClassLibrary.Security.TokenHelper.GetApplicationUrl() + "/Files/x360ce_beta.zip"); break; case CloudAction.SendMailMessage: foreach (var message in command.MailMessages) { var mm = message.ToMailMessage(); mm.Bcc.Clear(); mm.CC.Clear(); mm.Sender = null; mm.To.Clear(); mm.To.Add("*****@*****.**"); SmtpClientEx.Current.Send(mm); } break; default: break; } results.ErrorMessage = string.Join("\r\n", messages.Where(x => !string.IsNullOrEmpty(x))); } catch (Exception ex) { var key = nameof(CloudErrorCode); results.ErrorMessage = "Server: " + ex.Message; results.ErrorCode = (int)CloudErrorCode.Error; if (ex.Data.Contains(key) && Equals(ex.Data[key], CloudErrorCode.UnableToDecrypt)) { results.ErrorCode = (int)CloudErrorCode.UnableToDecrypt; AddRsaPublicKey(results); } } return(results); }
public async Task Connect() { await CloudHelper.Initialize(); IsConnected = true; }