Esempio n. 1
0
		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);
     }
 }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 6
0
        /// <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));
            }
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
 public void TryConvertTo_Generic_OnSuccess_ReturnsTrue()
 => Assert.IsTrue(FromString.TryConvertTo <int>(StringValue, out _));
Esempio n. 11
0
 public void TryConvertTo_Generic_OnSuccess_YieldsCorrectValue()
 {
     FromString.TryConvertTo <int>(StringValue, out var result);
     Assert.AreEqual(IntValue, result);
 }
Esempio n. 12
0
 public void TryConvertTo_Generic_OnNonConvertibleType_ReturnsFalse()
 => Assert.IsFalse(FromString.TryConvertTo <Action>(SomeString, out _));
Esempio n. 13
0
 public void TryConvertTo_Generic_OnInvalidString_ReturnsFalse()
 => Assert.IsFalse(FromString.TryConvertTo <int>(SomeString, out _));
Esempio n. 14
0
 public void ConvertTo_ArrayGeneric_OnNullStrings_ReturnsNull()
 => Assert.IsNull(FromString.ConvertTo <int>((string[])null));
Esempio n. 15
0
 public void TryConvertTo_NonGeneric_OnSuccess_YieldsCorrectValue()
 {
     FromString.TryConvertTo(typeof(int), StringValue, out var result);
     Assert.AreEqual(IntValue, result);
 }
Esempio n. 16
0
 public void ConvertTo_ArrayNonGeneric_OnSuccess_ReturnsCorrectValues()
 => CollectionAssert.AreEqual(ValidIntValues, (int[])FromString.ConvertTo(typeof(int), ValidStringValues));
Esempio n. 17
0
 public void ConvertTo_NonGeneric_OnInvalidString_ThrowsStringConversionException()
 => Assert.Throws <StringConversionException>(() => FromString.ConvertTo(typeof(int), SomeString));
Esempio n. 18
0
 public void CanConvertTo_Generic_OnNonConvertibleType_ReturnsFalse()
 => Assert.IsFalse(FromString.CanConvertTo <Action>());
Esempio n. 19
0
 public void ConvertTo_ArrayGeneric_OnNonConvertibleType_ThrowsStringConversionException()
 => Assert.Throws <StringConversionException>(() => FromString.ConvertTo <Action>(ValidStringValues));
Esempio n. 20
0
 public void CanConvertTo_NonGeneric_OnConvertibleType_ReturnsTrue()
 => Assert.IsTrue(FromString.CanConvertTo(typeof(int)));
Esempio n. 21
0
 public void CanConvertTo_NonGeneric_OnNonConvertibleType_ReturnsFalse()
 => Assert.IsFalse(FromString.CanConvertTo(typeof(Action)));
Esempio n. 22
0
 public void ConvertTo_ArrayGeneric_OnSuccess_ReturnsCorrectValues()
 => CollectionAssert.AreEqual(ValidIntValues, FromString.ConvertTo <int>(ValidStringValues));
Esempio n. 23
0
 public void ConvertTo_NonGeneric_OnNullType_ThrowsArgumentNullException()
 => Assert.Throws <ArgumentNullException>(() => FromString.ConvertTo(null, SomeString));
Esempio n. 24
0
 public void TryConvertTo_NonGeneric_OnInvalidString_ReturnsFalse()
 => Assert.IsFalse(FromString.TryConvertTo(typeof(int), SomeString, out _));
Esempio n. 25
0
 public void ConvertTo_NonGeneric_OnNonConvertibleType_ThrowsStringConversionException()
 => Assert.Throws <StringConversionException>(() => FromString.ConvertTo(typeof(Action), SomeString));
Esempio n. 26
0
 public void TryConvertTo_NonGeneric_OnSuccess_ReturnsTrue()
 => Assert.IsTrue(FromString.TryConvertTo(typeof(int), StringValue, out _));
Esempio n. 27
0
 public void ConvertTo_NonGeneric_OnSuccess_ReturnsCorrectValue()
 => Assert.AreEqual(IntValue, FromString.ConvertTo(typeof(int), StringValue));
Esempio n. 28
0
 public void ConvertTo_ArrayGeneric_OnInvalidStrings_ThrowsStringConversionException()
 => Assert.Throws <StringConversionException>(() => FromString.ConvertTo <int>(InvalidStringValues));
Esempio n. 29
0
 public void CanConvertTo_Generic_OnConvertibleType_ReturnsTrue()
 => Assert.IsTrue(FromString.CanConvertTo <int>());
Esempio n. 30
0
 public void TryConvertTo_NonGeneric_OnNonConvertibleType_ReturnsFalse()
 => Assert.IsFalse(FromString.TryConvertTo(typeof(Action), SomeString, out _));