コード例 #1
0
        private object GetBoolValue(PriceFields priceField)
        {
            string fieldValue = GetFieldValue(priceField);

            if (fieldValue == "1")
            {
                return(true);
            }
            return(false);
        }
コード例 #2
0
        protected bool GetBoolValue(PriceFields priceField, string mask)
        {
            bool value = false;

            var trueValues  = new[] { "истина", "true" };
            var falseValues = new[] { "ложь", "false" };

            string[] selectedValues = null;

            try {
                foreach (string boolValue in trueValues)
                {
                    if (boolValue.Equals(mask, StringComparison.OrdinalIgnoreCase))
                    {
                        selectedValues = trueValues;
                    }
                }

                foreach (string boolValue in falseValues)
                {
                    if (boolValue.Equals(mask, StringComparison.OrdinalIgnoreCase))
                    {
                        selectedValues = falseValues;
                    }
                }

                string fieldValue = GetFieldValue(priceField);

                //Если в столбце значение пусто, то возвращаем значение по умолчанию
                if (String.IsNullOrEmpty(fieldValue))
                {
                    return(value);
                }

                if (selectedValues != null)
                {
                    Regex reRussian = new Regex(selectedValues[0], RegexOptions.IgnoreCase);
                    Match mRussian  = reRussian.Match(fieldValue);
                    Regex reEnglish = new Regex(selectedValues[1], RegexOptions.IgnoreCase);
                    Match mEnglish  = reEnglish.Match(fieldValue);
                    value = (mRussian.Success || mEnglish.Success);
                }
                else
                {
                    Regex re = new Regex(mask);
                    Match m  = re.Match(fieldValue);
                    value = (m.Success);
                }
            }
            catch {
            }

            return(value);
        }
コード例 #3
0
        public decimal GetDecimalValue(PriceFields field)
        {
            var value = GetFieldValueObject(field);

            if (value is DBNull)
            {
                return(0);
            }
            if (Cost.IsZeroOrLess((decimal)value))
            {
                return(0);
            }
            return((decimal)value);
        }
コード例 #4
0
        /// <summary>
        /// Получить значение поля как объект
        /// </summary>
        public virtual object GetFieldValueObject(PriceFields PF)
        {
            switch ((int)PF)
            {
            case (int)PriceFields.OptimizationSkip:
                return(GetBoolValue(PF));

            case (int)PriceFields.Await:
                return(GetBoolValue(PF, awaitPos));

            case (int)PriceFields.Junk:
                return(GetBoolValue(PF, junkPos));

            case (int)PriceFields.VitallyImportant:
                return(GetBoolValue(PF, vitallyImportantMask));

            case (int)PriceFields.RequestRatio:
                return(ProcessInt(GetFieldRawValue(PF)));

            case (int)PriceFields.Code:
            case (int)PriceFields.CodeCr:
            case (int)PriceFields.Doc:
            case (int)PriceFields.FirmCr:
            case (int)PriceFields.Name1:
            case (int)PriceFields.Name2:
            case (int)PriceFields.Name3:
            case (int)PriceFields.Note:
            case (int)PriceFields.Unit:
            case (int)PriceFields.Volume:
            case (int)PriceFields.OriginalName:
                return(GetFieldValue(PF));

            case (int)PriceFields.ProducerCost:
            case (int)PriceFields.MinBoundCost:
            case (int)PriceFields.RegistryCost:
            case (int)PriceFields.MaxBoundCost:
            case (int)PriceFields.OrderCost:
                return(ProcessCost(GetFieldRawValue(PF)));

            case (int)PriceFields.Quantity:
            case (int)PriceFields.MinOrderCount:
                return(ProcessInt(GetFieldRawValue(PF)));

            case (int)PriceFields.Period:
                return(ProcessPeriod(GetFieldRawValue(PF)));

            default:
                return(DBNull.Value);
            }
        }
コード例 #5
0
        /// <summary>
        /// Получить сырое значение текущего поля
        /// </summary>
        /// <param name="field"></param>
        /// <returns></returns>
        public virtual string GetFieldRawValue(PriceFields field)
        {
            try {
                //Если имя столбца для поля не определено, то возвращаем null
                if (String.IsNullOrEmpty(GetFieldName(field)))
                {
                    return(null);
                }

                var value = _priceData.Rows[_index][GetFieldName(field)].ToString();
                value = CleanupCharsThatNotFitIn1251(value);
                return(value);
            }
            catch {
                return(null);
            }
        }
コード例 #6
0
        public string GetFieldValue(PriceFields PF)
        {
            if (null == m)
            {
                return(String.Empty);
            }
            try {
                switch ((int)PF)
                {
                case (int)PriceFields.Code:
                    return(m.Groups[reGroupName[(int)NameGroup.Code]].Value);

                case (int)PriceFields.Doc:
                    return(m.Groups[reGroupName[(int)NameGroup.Doc]].Value);

                case (int)PriceFields.FirmCr:
                    return(m.Groups[reGroupName[(int)NameGroup.FirmCr]].Value);

                case (int)PriceFields.Name1:
                case (int)PriceFields.Name2:
                case (int)PriceFields.Name3:
                    return(m.Groups[reGroupName[(int)NameGroup.Name]].Value);

                case (int)PriceFields.Note:
                    return(m.Groups[reGroupName[(int)NameGroup.Note]].Value);

                case (int)PriceFields.Period:
                    return(m.Groups[reGroupName[(int)NameGroup.Period]].Value);

                case (int)PriceFields.Unit:
                    return(m.Groups[reGroupName[(int)NameGroup.Unit]].Value);

                default:
                    return(String.Empty);
                }
            }
            catch {
                return(String.Empty);
            }
        }
コード例 #7
0
 public static string GetDescription(PriceFields value)
 {
     object[] descriptions = value.GetType().GetField(value.ToString()).GetCustomAttributes(false);
     return(((System.ComponentModel.DescriptionAttribute)descriptions[0]).Description);
 }
コード例 #8
0
        /// <summary>
        /// Получить значение поля в обработанном виде
        /// </summary>
        public virtual string GetFieldValue(PriceFields field)
        {
            string res = null;

            //Сначала пытаемся вытянуть данные из toughMask
            if (null != toughMask)
            {
                res = toughMask.GetFieldValue(field);
                if (null != res)
                {
                    //Удаляем опасные слова только из наименований
                    if ((PriceFields.Name1 == field) || (PriceFields.Name2 == field) || (PriceFields.Name2 == field) || (PriceFields.OriginalName == field))
                    {
                        res = RemoveForbWords(res);
                    }
                    if ((PriceFields.Note != field) && (PriceFields.Doc != field))
                    {
                        res = UnSpace(res);
                    }
                }
            }

            //Если у нас это не получилось, что пытаемся вытянуть данные из самого поля
            if ((null == res) || ("" == res.Trim()))
            {
                res = GetFieldRawValue(field);
                if (null != res)
                {
                    if ((PriceFields.Name1 == field) || (PriceFields.Name2 == field) || (PriceFields.Name2 == field))
                    {
                        res = RemoveForbWords(res);
                    }
                    res = UnSpace(res);
                }
            }

            if ((PriceFields.Name1 == field) || (PriceFields.Name2 == field) || (PriceFields.Name2 == field) || (PriceFields.OriginalName == field) || (PriceFields.FirmCr == field))
            {
                if (null != res && res.Length > 255)
                {
                    res = res.Remove(255, res.Length - 255);
                    res = res.Trim();
                }
            }

            if (PriceFields.Name1 == field || PriceFields.OriginalName == field)
            {
                if (_priceData.Columns.IndexOf(GetFieldName(PriceFields.Name2)) > -1)
                {
                    res = UnSpace(String.Format("{0} {1}", res, RemoveForbWords(GetFieldRawValue(PriceFields.Name2))));
                }
                if (_priceData.Columns.IndexOf(GetFieldName(PriceFields.Name3)) > -1)
                {
                    res = UnSpace(String.Format("{0} {1}", res, RemoveForbWords(GetFieldRawValue(PriceFields.Name3))));
                }

                if (null != res && res.Length > 255)
                {
                    res = res.Remove(255, res.Length - 255);
                    res = res.Trim();
                }

                return(res);
            }

            return(res);
        }
コード例 #9
0
        private uint GetUintOrDefault(PriceFields field)
        {
            var value = ProcessInt(GetFieldRawValue(field));

            return(value is DBNull ? 0 : (uint)((int)value));
        }
コード例 #10
0
 /// <summary>
 /// Установить название поля, которое будет считано из набора данных
 /// </summary>
 public void SetFieldName(PriceFields PF, string Value)
 {
     fieldNames[(int)PF] = Value;
 }
コード例 #11
0
        protected static string GetDescription(PriceFields value)
        {
            var descriptions = value.GetType().GetField(value.ToString()).GetCustomAttributes(false);

            return(((DescriptionAttribute)descriptions[0]).Description);
        }
コード例 #12
0
 public string GetFieldName(PriceFields PF)
 {
     return(fieldNames[(int)PF]);
 }