public Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) { var discriminator = bindingContext.ValueProvider.GetValue("Account.AccountType").ToString(); var myType = AccountExtensions.Type(discriminator); var r = new Assignement { Account = Account.GetInstanceOf(myType) }; r.Account.Id = bindingContext.ValueProvider.GetValue("Account.Id").ToString(); r.Account.Nickname = bindingContext.ValueProvider.GetValue("Account.Nickname").ToString(); r.Account.Email = bindingContext.ValueProvider.GetValue("Account.Email").ToString(); r.User.Name = bindingContext.ValueProvider.GetValue("User.Name").ToString(); r.User.Surname = bindingContext.ValueProvider.GetValue("User.Surname").ToString(); //var result = Account.GetInstanceOf(discriminator); //result.Id = bindingContext.ValueProvider.GetValue("Account.Id").ToString(); //result.Nickname = bindingContext.ValueProvider.GetValue("Account.Nickname").ToString(); //result.Email = bindingContext.ValueProvider.GetValue("Account.Email").ToString(); // result.User.Id = bindingContext.ValueProvider.GetValue("User.Id").ToString(); //bindingContext.ModelState.SetModelValue( // bindingContext.ModelName, ); bindingContext.Result = ModelBindingResult.Success(r); return(Task.CompletedTask); //return ModelBindingResult.Success(result); }
public void MatchByAppTest(bool expectedResult, string targetApp, params string[] savedApps) { // Arrange var appInfo = new AppInfo { ProcessName = targetApp, }; // Act var result = AccountExtensions.MatchByApp(appInfo, savedApps.ToList()); // Assert Assert.AreEqual(expectedResult, result); }
[TestCase(false, "microsoft.office.com:80", "microsoft.office.com")] // Different ports public void MatchByDomainTest(bool expectedResult, string targetUrl, params string[] savedUrls) { // Arrange var appInfo = new AppInfo { Domain = targetUrl, }; // Act var result = AccountExtensions.MatchByDomain(appInfo, savedUrls.ToList()); // Assert Assert.AreEqual(expectedResult, result); }
static void Main(string[] args) { string server, projectId, username, password; if (args == null || args.Length < 4) { Console.WriteLine("Missing arguments."); return; } else { server = args[0]; projectId = args[1]; username = args[2]; password = args[3]; } Console.WriteLine("----------------------NR CSV to API----------------------"); Console.WriteLine("Authenticating..."); DataAPIClient apiClient = new DataAPIClient(new System.Net.Http.HttpClient(), true) { BaseUri = new Uri(server) }; apiClient.HttpClient.Timeout = Timeout.InfiniteTimeSpan; //authorize TokenResponse tokenResponse = AccountExtensions.GetToken(apiClient.Account, new TokenRequest(username, password)); apiClient.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenResponse.AccessToken); if (tokenResponse.AccessToken == null || tokenResponse.AccessToken == "") { Console.WriteLine("AUTHENTICATION FAILED"); return; } else { Console.WriteLine("Authentication COMPLETED!"); } Console.WriteLine("Mapping data from CSV..."); string filelocation = Path.Combine(Environment.CurrentDirectory + "\\..\\..\\Data\\csv\\test.csv"); //Mapping CSV data into C# object List <CSVData> csvData = DataMapper.getMappedDataFromCSV(filelocation); JSONModel uploadData = new JSONModel(); //Mapping MetaData for JSONModel DataMapper.getMetadataForImport().ForEach(uploadData.MetaData.Add); //Mapping CaseData for JSONModel DataMapper.getCasedataForImport(csvData).ForEach(uploadData.CaseData.Add); //Serializing JSONModel C# Object to JSON Object var json = new JavaScriptSerializer().Serialize(uploadData); Console.WriteLine("Mapping COMPLETED!"); //Import API of JSON Object data Console.WriteLine("Importing data to the server"); dynamic importInput = json; Response importResponse = ImportExtensions.PostImport(apiClient.Import, importInput, projectId); if (importResponse.Data == null || tokenResponse.AccessToken == "") { Console.WriteLine("DATA IMPORT FAILED"); return; } else { Console.WriteLine("Import COMPLETED!"); } //GET Import Batches API PagedInputOfBatchFilterInput batchFilterInput = new PagedInputOfBatchFilterInput() { Paging = new PagingInput() { PageNumber = 1, PageSize = 10 } }; Response batches = ImportExtensions.Batches(apiClient.Import, batchFilterInput, projectId); //Isolating ImportId for activation from batches.Data string var Ids = batches.Data.ToString(); Ids = Ids.Substring(Ids.IndexOf("ImportID") + 11, Ids.Length - (Ids.IndexOf("ImportID") + 11)); Ids = Ids.Substring(0, Ids.IndexOf("\r") - 1); string[] parsedIds = Ids.Split(','); List <long?> IdsToActivates = new List <long?>(); foreach (string s in parsedIds) { if (Int32.TryParse(s, out int result)) { IdsToActivates.Add(result); } } Console.WriteLine("Activating data on the server..."); //Activate Import Batches API ActivateInput activateInput = new ActivateInput() { IdsToActivate = IdsToActivates, IdsToDeactivate = new List <long?>() }; ActivationExtensions.Activate(apiClient.Activation, activateInput, projectId); //GET Activation History API PagedInputOfActivationHistoryFilterInput historyFilterInput = new PagedInputOfActivationHistoryFilterInput() { Paging = new PagingInput() { PageNumber = 1, PageSize = 10 } , Sorting = new SortingInput() { OrderBy = "ActivationTime", Ascending = false } }; Response activationHistory = ActivationExtensions.History(apiClient.Activation, historyFilterInput, projectId); //Isolating last history record for valdiation var history = activationHistory.Data.ToString(); history = history.Substring(history.IndexOf("ActivationTime") + 18, history.Length - (history.IndexOf("ActivationTime") + 18)); history = history.Substring(0, history.IndexOf("\r") - 3); if (DateTime.TryParse(history, out DateTime lastHistory)) { if (lastHistory > DateTime.Now.AddMinutes(-60)) { Console.WriteLine("Data activation COMPLETED!"); } else { Console.WriteLine("DATA ACTIVATION FAILED"); return; } } else { Console.WriteLine("DATA ACTIVATION FAILED"); return; } }