private void ConvertHours() { int posTo = ToString.IndexOf(':'); int posFrom = FromString.IndexOf(':'); int toHour = 0, toMinute = 0, fromHour = 0, fromMinute = 0; if (posTo == -1) { int.TryParse(ToString, out toHour); } else { int.TryParse(ToString.Substring(0, posTo), out toHour); int.TryParse(ToString.Substring(posTo + 1), out toMinute); } if (posFrom == -1) { int.TryParse(FromString, out fromHour); } else { int.TryParse(FromString.Substring(0, posFrom), out fromHour); int.TryParse(FromString.Substring(posFrom + 1), out fromMinute); } To = new DateTime(1900, 1, 1, toHour, toMinute, 0); From = new DateTime(1900, 1, 1, fromHour, fromMinute, 0); }
/// <summary> /// Event: Menu -> Color -> Value Text Box /// Updates the current drape color with the value entered in the Color Value Text Box, when Enter is pressed. /// </summary> /// <param name="sender">The sender of the event.</param> /// <param name="e">Empty event data.</param> private void EventMenuMainColorValueTextBoxKeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Return) { FromString.IfHtmlColor( this.menuMainColorValueTextBox.Text, value => { this.SetDrapeColor(value); e.SuppressKeyPress = true; }, null); } }
async Task <object?> IRequestDataAttribute <WebApiController> .GetRequestDataAsync( WebApiController controller, Type type, string parameterName) { var data = await controller.HttpContext.GetRequestFormDataAsync() .ConfigureAwait(false); var fieldName = FieldName ?? parameterName; if (!data.ContainsKey(fieldName) && BadRequestIfMissing) { throw HttpException.BadRequest($"Missing form field {fieldName}."); } object result = null; if (type.IsArray) { var fieldValues = data.GetValues(fieldName) ?? Array.Empty <string>(); if (!FromString.TryConvertTo(type, fieldValues, out result)) { throw HttpException.BadRequest($"Cannot convert field {fieldName} to an array of {type.GetElementType().Name}."); } return(result); } else { var fieldValue = data.GetValues(fieldName)?.LastOrDefault(); if (fieldValue == null) { if (type.IsValueType) { var parameter = controller.CurrentMethod.GetParameters().FirstOrDefault(p => p.Name == parameterName); result = parameter.HasDefaultValue ? parameter.DefaultValue : Activator.CreateInstance(type); } return(Task.FromResult(result)); } if (!FromString.TryConvertTo(type, fieldValue, out result)) { throw HttpException.BadRequest($"Cannot convert field {fieldName} to {type.Name}."); } return(result); } }
/// <summary> /// Applies a new size when the user presses Enter in the Size text box. /// </summary> /// <param name="sender">The sender of the event.</param> /// <param name="e">Keyboard event data.</param> private void EventMenuFocusSizeTextBoxKeyPress(object sender, KeyPressEventArgs e) { if ((e.KeyChar == (char)Keys.Return) && (this.focusControlMenuOwner != null)) { FromString.IfIntPair( this.menuFocusSizeTextBox.Text, 'x', (width, height) => { this.focusControlMenuOwner.Width = width; this.focusControlMenuOwner.Height = height; }, null); e.Handled = true; } }
/// <summary> /// Applies a new common size to the current focus area. /// </summary> /// <param name="sender">The sender of the event.</param> /// <param name="e">Empty event data.</param> private void EventMenuFocusCommonSizesItemsClick(object sender, EventArgs e) { ToolStripMenuItem senderMenu = sender as ToolStripMenuItem; if ((senderMenu != null) && (this.focusControlMenuOwner != null)) { FromString.IfIntPair( senderMenu.Text, 'x', (width, height) => { this.focusControlMenuOwner.Width = width; this.focusControlMenuOwner.Height = height; }, null); } }
/// <summary> /// 将要发送的数据包存入队列 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="type">数据包类型0-Protobuf,1-Json</param> /// <param name="tobject"></param> /// <param name="channel"></param> internal void AddSendBuff <T>(int channel, int type, T tobject, bool OffCheckTimeOut) { byte[] tbuff = null; switch (type) { case 0: tbuff = NSocket.Serialize(tobject); break; case 1: tbuff = FromString.GetBytes(tobject as string, Encoding.Default); break; } byte[] buff = Encoder(channel, type, tbuff); SendBuffQue.Enqueue(new KeyValuePair <int, byte[]>(OffCheckTimeOut == false ? channel : -1, buff)); SendBuff(); }
/// <summary> /// Loads the drape color, opacity, and focus areas from a CinemaDrape configuration file. /// </summary> /// <param name="filePath">The location of the configuration file.</param> /// <param name="loadAreas">True to load the focus areas, false otherwise.</param> private void LoadLayout(string filePath, bool loadAreas) { VerySimpleIni iniFile = string.IsNullOrEmpty(filePath) ? new VerySimpleIni(Properties.Resources.StringDefaultSettingsFile, Application.ExecutablePath, Application.CompanyName, Application.ProductName, false) : new VerySimpleIni(filePath, true); if (iniFile.Load()) { FromString.IfHtmlColor(iniFile.GetValue(Properties.Resources.StringSettingsDrapeColor), this.SetDrapeColor, null); // Read the drape opacity as int (and support the legacy double format) string drapeOpacityStr = iniFile.GetValue(Properties.Resources.StringSettingsDrapeOpacity); FromString.IfInt( drapeOpacityStr, (value) => { this.SetDrapeOpacity(this.ConvertOpacity(value)); }, (error) => { FromString.IfDouble(drapeOpacityStr, this.SetDrapeOpacity, null); }); string peekOpacityStr = iniFile.GetValue(Properties.Resources.StringSettingsPeekOpacity); FromString.IfInt( peekOpacityStr, (value) => { this.peekOpacity = this.ConvertOpacity(value); }, (error) => { FromString.IfDouble(peekOpacityStr, (value) => { this.peekOpacity = value; }, null); }); this.hotKeyString = iniFile.GetValue(Properties.Resources.StringSettingsHotkey); FromString.IfBool(iniFile.GetValue(Properties.Resources.StringSettingsAutoRestoreAreas), value => { this.autoRestoreAreas = value; }, null); if (loadAreas || this.autoRestoreAreas) { this.DeleteAllFocusAreas(); string focusRectString; while (!string.IsNullOrEmpty(focusRectString = iniFile.GetValue(Properties.Resources.StringSettingsFocusArea))) { FromString.IfRectangle(focusRectString, this.AddNewFocusArea, null); } } FromString.IfBool(iniFile.GetValue(Properties.Resources.StringSettingsShowQuickStart), value => { this.quickStartForm.ShowAtStartupCheckBox.Checked = value; }, null); FromString.IfPoint(iniFile.GetValue(Properties.Resources.StringSettingsQuickStartLocation), value => { this.quickStartForm.Location = value; }, null); } }
Task <object?> IRequestDataAttribute <WebApiController> .GetRequestDataAsync( WebApiController controller, Type type, string parameterName) { var data = controller.HttpContext.GetRequestQueryData(); var fieldName = FieldName ?? parameterName; if (!data.ContainsKey(fieldName) && BadRequestIfMissing) { throw HttpException.BadRequest($"Missing query field {fieldName}."); } if (type.IsArray) { var fieldValues = data.GetValues(fieldName) ?? Array.Empty <string>(); if (!FromString.TryConvertTo(type, fieldValues, out var result)) { throw HttpException.BadRequest($"Cannot convert field {fieldName} to an array of {type.GetElementType().Name}."); } return(Task.FromResult(result)); } else { var fieldValue = data.GetValues(fieldName)?.LastOrDefault(); if (fieldValue == null) { return(Task.FromResult(type.IsValueType ? Activator.CreateInstance(type) : null)); } if (!FromString.TryConvertTo(type, fieldValue, out var result)) { throw HttpException.BadRequest($"Cannot convert field {fieldName} to {type.Name}."); } return(Task.FromResult(result)); } }
public static List <Alias <T> > LoadFile(string fileName, FromString fromString, ToStringFunc toString) { List <Alias <T> > newList = new List <Alias <T> >(); StreamReader rd = new StreamReader(fileName); while (!rd.EndOfStream) { string line = rd.ReadLine().Trim(); if (line == "") { continue; } string[] split = line.Split(new string[] { ":=" }, 2, StringSplitOptions.None); if (split.Length != 2) { continue; } newList.Add(new Alias <T>(split[0].Trim(), fromString(split[1].Trim()), toString)); } rd.Close(); return(newList); }
public void TryConvertTo_Generic_OnSuccess_ReturnsTrue() => Assert.IsTrue(FromString.TryConvertTo <int>(StringValue, out _));
public void TryConvertTo_Generic_OnSuccess_YieldsCorrectValue() { FromString.TryConvertTo <int>(StringValue, out var result); Assert.AreEqual(IntValue, result); }
public void TryConvertTo_Generic_OnNonConvertibleType_ReturnsFalse() => Assert.IsFalse(FromString.TryConvertTo <Action>(SomeString, out _));
public void TryConvertTo_Generic_OnInvalidString_ReturnsFalse() => Assert.IsFalse(FromString.TryConvertTo <int>(SomeString, out _));
public void ConvertTo_ArrayGeneric_OnNullStrings_ReturnsNull() => Assert.IsNull(FromString.ConvertTo <int>((string[])null));
public void TryConvertTo_NonGeneric_OnSuccess_YieldsCorrectValue() { FromString.TryConvertTo(typeof(int), StringValue, out var result); Assert.AreEqual(IntValue, result); }
public void ConvertTo_ArrayNonGeneric_OnSuccess_ReturnsCorrectValues() => CollectionAssert.AreEqual(ValidIntValues, (int[])FromString.ConvertTo(typeof(int), ValidStringValues));
public void ConvertTo_NonGeneric_OnInvalidString_ThrowsStringConversionException() => Assert.Throws <StringConversionException>(() => FromString.ConvertTo(typeof(int), SomeString));
public void CanConvertTo_Generic_OnNonConvertibleType_ReturnsFalse() => Assert.IsFalse(FromString.CanConvertTo <Action>());
public void ConvertTo_ArrayGeneric_OnNonConvertibleType_ThrowsStringConversionException() => Assert.Throws <StringConversionException>(() => FromString.ConvertTo <Action>(ValidStringValues));
public void CanConvertTo_NonGeneric_OnConvertibleType_ReturnsTrue() => Assert.IsTrue(FromString.CanConvertTo(typeof(int)));
public void CanConvertTo_NonGeneric_OnNonConvertibleType_ReturnsFalse() => Assert.IsFalse(FromString.CanConvertTo(typeof(Action)));
public void ConvertTo_ArrayGeneric_OnSuccess_ReturnsCorrectValues() => CollectionAssert.AreEqual(ValidIntValues, FromString.ConvertTo <int>(ValidStringValues));
public void ConvertTo_NonGeneric_OnNullType_ThrowsArgumentNullException() => Assert.Throws <ArgumentNullException>(() => FromString.ConvertTo(null, SomeString));
public void TryConvertTo_NonGeneric_OnInvalidString_ReturnsFalse() => Assert.IsFalse(FromString.TryConvertTo(typeof(int), SomeString, out _));
public void ConvertTo_NonGeneric_OnNonConvertibleType_ThrowsStringConversionException() => Assert.Throws <StringConversionException>(() => FromString.ConvertTo(typeof(Action), SomeString));
public void TryConvertTo_NonGeneric_OnSuccess_ReturnsTrue() => Assert.IsTrue(FromString.TryConvertTo(typeof(int), StringValue, out _));
public void ConvertTo_NonGeneric_OnSuccess_ReturnsCorrectValue() => Assert.AreEqual(IntValue, FromString.ConvertTo(typeof(int), StringValue));
public void ConvertTo_ArrayGeneric_OnInvalidStrings_ThrowsStringConversionException() => Assert.Throws <StringConversionException>(() => FromString.ConvertTo <int>(InvalidStringValues));
public void CanConvertTo_Generic_OnConvertibleType_ReturnsTrue() => Assert.IsTrue(FromString.CanConvertTo <int>());
public void TryConvertTo_NonGeneric_OnNonConvertibleType_ReturnsFalse() => Assert.IsFalse(FromString.TryConvertTo(typeof(Action), SomeString, out _));