/// <summary> /// Creates a Registered User and performs Login for that user in as well. /// Password used is same as that for Host. Existing user is used if it's already present. /// </summary> /// <returns>IWebApiConnector object to perform more actions</returns> public static IWebApiConnector LoginRegisteredUser(string firstName = IntegrationConstants.RuFirstName, string lastName = IntegrationConstants.RuLastName, string url = null) { IWebApiConnector connector; url = url ?? AppConfigHelper.SiteUrl; var username = firstName + "." + lastName; var key = string.Join("_", url, username); if (!CachedConnections.TryGetValue(key, out connector) || connector.LoggedInAtTime < DateTime.Now.AddMinutes(-19.5)) { var portalId = GetPortalFromUrl(url); UserController.CreateRegisteredUser(firstName, lastName, portalId); connector = WebApiConnector.GetWebConnector(url, username); CachedConnections[key] = connector; } if (!connector.IsLoggedIn) { var loggedIn = connector.Login(AppConfigHelper.HostPassword); Assert.IsTrue(loggedIn); } return(connector); }
/// <summary> /// Обработчик нажатия на кнопку меню "Справочники - С/х культуры - Группы с/х культур (сервер)" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void ToolStripMenuItem_Sprav_CropGroups_Remote_Click(object sender, EventArgs e) { WebApiConnector webApiConnector = new WebApiConnector(); _cropGroupRepository = new CropGroupRepositoryWebApi(webApiConnector); dataGridViewMain.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dataGridViewMain.MultiSelect = false; try { var list = await _cropGroupRepository.GetCropGroupsAsync(); BindingList <CropGroup> bindingListCropGroups = new BindingList <CropGroup>(list); dataGridViewMain.DataSource = bindingListCropGroups; } catch (Exception exc) { richTextBoxLog.Text += $"{exc.Message}\n"; } dataGridViewMain.Columns[0].HeaderText = "УИД"; dataGridViewMain.Columns[1].HeaderText = "Наименование группы с/х культур"; dataGridViewMain.Columns[1].Width = 400; }
public void TestFindProjectWorkerByFaceId() { var connector = new WebApiConnector(); var userId = connector.FindProjectWorkerByFaceId("592e2531b2ddc226f0df2b24", "1").GetAwaiter().GetResult(); Assert.IsNotNull(userId); Assert.AreEqual(24, userId.Length); }
private void SynchWithWebsite() { //Get latest web order in database: lock (fileStore) { int lastWebOrder = 0; int holeIndex = 0; bool go = true; List <string> keys = fileStore.Keys; //Will not work. while (go) { if (knownHoleStarts.Contains(lastWebOrder)) { lastWebOrder = knownHoleEnds[holeIndex]; holeIndex++; } Order2 order = fileStore[OrderConverters.GetWebOrderNumber(lastWebOrder + 1)]; if (order == null) { break; } if (order.WebOrder) //Should always be true... TODO: Better error handling... { lastWebOrder = Math.Max(order.WebId ?? 0, lastWebOrder); } } WebOrder webOrder = WebApiConnector.GetWebOrderByNumber(lastWebOrder + 1); Order2 newOrder; while (webOrder != null) { if (webOrder == null) { break; } newOrder = OrderConverters.ConvertWebOrderToDbOrder(webOrder); fileStore[newOrder.OrderNumber] = newOrder; webOrder = WebApiConnector.GetWebOrderByNumber(webOrder.Id + 1); } } isSynchedWithWeb = true; }
public static float GetPrice() { var webapi = new WebApiConnector(); var item = webapi.GetItem(); //JArray arr = JArray.Parse(item); JObject obj = JObject.Parse(item); var value = float.Parse(obj["bpi"]["USD"]["rate_float"].ToString()); return(value * (float)(Math.Pow(10, -5) * 3.59) * 6.22f); //Console.WriteLine(value); }
///////////////////////////////////////////////// /// Message handler for Poomba. SnapBox only receives /// one kind of message. This message is then split /// using a RegEx, such that 2 values are extracted. /// These values will then decide if mail is received, /// and what the powerlevel of the battery is. /// These values are then posted to the WebApi ///////////////////////////////////////////////// public void HandleMessage(string message, string topic = "") { Console.WriteLine("Snap Box message: {0}, Topic: {1}", message, topic); var data = Regex.Split(message, @"\D+"); // Length might be 3 or 2, depending on the Regex implementation... for (int i = 0; i < data.Length; i++) { data[i] = data[i].Trim(); } if (data.Length == 3 && string.IsNullOrEmpty(data[0])) { if (data[1] == "0" && data[2] == "0") { return; // False message from I2C stutter } var snapboxitem = new SnapBoxItem() { MailReceived = data[1] == "1", PowerLevel = data[2], ReceiverEmail = "*****@*****.**" }; var webapi = new WebApiConnector(); webapi.PostItem("snapbox/", JsonConvert.SerializeObject(snapboxitem)); } else if (data.Length == 2) { if (data[0] == "0" && data[1] == "0") { return; // False message from I2C stutter } var snapboxitem = new SnapBoxItem() { MailReceived = data[0] == "1", PowerLevel = data[1], ReceiverEmail = "*****@*****.**" }; var webapi = new WebApiConnector(); webapi.PostItem("snapbox/", JsonConvert.SerializeObject(snapboxitem)); } else { throw new ArgumentException(string.Format("SnapBox Received Wrong Input -- Data length: {0} -- Data: {1}", data.Length, data.ToString())); } }
///////////////////////////////////////////////// /// Handler function for when the Web Api requests /// to set the timers on Poomba ///////////////////////////////////////////////// private static void UpdateTime(string message) { Console.WriteLine("Poomba: Asked to update timers"); WebApiConnector connector = new WebApiConnector(); //Get latest PoombaObject from database string json = connector.GetItem("Poomba/Newest"); PoombaItem poomba = JsonConvert.DeserializeObject <PoombaItem>(json); //Find time for next sleep time TimeSpan timeToTurnOff = poomba.SleepTime - DateTime.Now; TimeSpan timeToTurnOn = poomba.WakeUpTime - DateTime.Now; // Increment TimeSpan by one day until the day matches with current day while (timeToTurnOff < TimeSpan.Zero) { timeToTurnOff = timeToTurnOff + TimeSpan.FromDays(1); } while (timeToTurnOn < TimeSpan.Zero) { timeToTurnOn = timeToTurnOn + TimeSpan.FromDays(1); } Console.WriteLine("Poomba: Timer for wakeup is now in: {0} hours", timeToTurnOn.TotalHours); Console.WriteLine("Poomba: Timer for sleep is now in: {0} hours", timeToTurnOff.TotalHours); //Set up timer for automatic sleep _sleepTimer?.Dispose(); _wakeUpTimer?.Dispose(); _sleepTimer = new System.Timers.Timer(timeToTurnOff.TotalMilliseconds); _sleepTimer.Elapsed += Sleep; _sleepTimer.AutoReset = false; _sleepTimer.Start(); _wakeUpTimer = new System.Timers.Timer(timeToTurnOn.TotalMilliseconds); _wakeUpTimer.Elapsed += WakeUp; _wakeUpTimer.AutoReset = false; _wakeUpTimer.Start(); }
/// <summary> /// Logs in an already registered user (regardless of the user's role) /// </summary> /// <returns>IWebApiConnector object to perform more actions</returns> public static IWebApiConnector LoginUser(string username, string url = null) { IWebApiConnector connector; url = url ?? AppConfigHelper.SiteUrl; var key = string.Join("_", url, username); if (!CachedConnections.TryGetValue(key, out connector)) { connector = WebApiConnector.GetWebConnector(url, username); CachedConnections.Add(key, connector); } if (!connector.IsLoggedIn) { var loggedIn = connector.Login(AppConfigHelper.HostPassword); Assert.IsTrue(loggedIn); } return(connector); }
private async void button_JwtAuthorization_Click(object sender, EventArgs e) { using (HttpClient client = new HttpClient()) { try { WebApiConnector webApiConnector = new WebApiConnector(); webApiConnector.UriBuilder.Path = "api/token"; HttpResponseMessage response = await client.PostAsJsonAsync("https://localhost:44304/api/token", new { username = "******", password = "******" }); response.EnsureSuccessStatusCode(); var readedString = await response.Content.ReadAsStringAsync(); string token = readedString.Substring(10); token = token.TrimEnd('\"', '}'); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); string responseJsonString = await client.GetStringAsync("https://localhost:44304/api/books"); //WebApiConnector webApiConnector = new WebApiConnector(); //webApiConnector.UriBuilder.Path = "api/Authentication"; //HttpResponseMessage response = await client.PostAsJsonAsync(webApiConnector.Uri, new { username="******", password = "******" }); //response.EnsureSuccessStatusCode(); //var readedString = await response.Content.ReadAsStringAsync(); //client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(readedString); //webApiConnector.UriBuilder.Path = "api/CropGroups"; //string responseJsonString = await client.GetStringAsync(webApiConnector.Uri); //var cropGroups = CropGroup.DeserializeJsonList(responseJsonString); } catch (HttpRequestException exc) { Console.WriteLine("\nException Caught!"); Console.WriteLine("Message :{0} ", exc.Message); } } }
/// <summary> /// Register a user by using the Registration form /// </summary> public static HttpWebResponse Register(string userName, string password, string displayName, string email, string url = null, bool encriptFieldsNames = true) { const string registerRelativeUrl = "/Register"; const string registerFieldsPrefix = "dnn$ctr$Register$userForm"; var postData = new Dictionary <string, object> { { registerFieldsPrefix + CodifyInputName("Username", "TextBox", encriptFieldsNames), userName }, { registerFieldsPrefix + CodifyInputName("Password", "TextBox", encriptFieldsNames), password }, { registerFieldsPrefix + CodifyInputName("PasswordConfirm", "TextBox", encriptFieldsNames), password }, { registerFieldsPrefix + CodifyInputName("DisplayName", "TextBox", encriptFieldsNames), displayName }, { registerFieldsPrefix + CodifyInputName("Email", "TextBox", encriptFieldsNames), email }, { "__EVENTTARGET", "dnn$ctr$Register$registerButton" }, { "__EVENTARGUMENT", "" }, { "__ASYNCPOST", "true" } }; url = url ?? AppConfigHelper.SiteUrl; var excludedInputPrefixes = new List <string>(); var connector = WebApiConnector.GetWebConnector(url, ""); return(connector.PostUserForm(registerRelativeUrl, postData, excludedInputPrefixes, false)); }
/// <summary> /// Creates an Administrator and performs Login for that user in as well. /// Password used is same as that for Host. Existing user is used if it's already present. /// </summary> /// <returns>WebApiConnector object to perform more actions</returns> public static IWebApiConnector LoginAdministrator(string firstName = IntegrationConstants.AdminFirstName, string lastName = IntegrationConstants.AdminLastName, string url = null) { IWebApiConnector connector; url = url ?? AppConfigHelper.SiteUrl; var username = firstName + "." + lastName; var key = string.Join("_", url, username); if (!CachedConnections.TryGetValue(key, out connector)) { var portalId = GetPortalFromUrl(url); UserController.CreateAdministratorUser(firstName, lastName, portalId); connector = WebApiConnector.GetWebConnector(url, username); CachedConnections.Add(key, connector); } if (!connector.IsLoggedIn) { var loggedIn = connector.Login(AppConfigHelper.HostPassword); Assert.IsTrue(loggedIn); } return(connector); }
/// <summary> /// Returns a coonector to access the default site annonymously /// </summary> /// <returns>IWebApiConnector object to perform more actions</returns> public static IWebApiConnector GetAnnonymousConnector(string url = null) { url = url ?? AppConfigHelper.SiteUrl; return(_anonymousConnector ?? (_anonymousConnector = WebApiConnector.GetWebConnector(url, null))); }
public ResendAttendancesJob(SqliteConnector connector) { _db = connector; _web = new WebApiConnector(); _logger = HostLogger.Get <ResendAttendancesJob>(); }
public UploadAttendanceLogsHandler(SqliteConnector connector) { _db = connector; _web = new WebApiConnector(); _logger = HostLogger.Get <UploadAttendanceLogsHandler>(); }