示例#1
0
        /// <summary>
        /// Метод,предназначенный для высчитывания координат,того или иного места,поддающегося на вход.
        /// </summary>
        /// <param name="type">Тип места</param>
        /// <param name="info">Информация о месте</param>
        /// <returns>Координаты в формате LatLng</returns>
        public static LatLng GetCoordinatesFromInfo(TypePlaces type, params int[] info)
        {
            if (type == TypePlaces.Основное_Кладбище)
            {
                switch (info[0])
                {
                case 1:
                {
                    // Если ряд 40 или меньше, то считаем координаты, если нет, то забираем константные координаты.
                    if (info[1] <= 40)
                    {
                        return(CalculatedCoordinates(info[1], countOfRowsRegions[info[0] - 1], coordinatesRegions[info[0] - 1]));
                    }
                    else
                    {
                        return(coordinatesRegion1Row41_47[info[1]]);
                    }
                }

                case 3:
                {
                    // Если ряд 58 или меньше, то считаем координаты, если нет, то забираем константные координаты.
                    if (info[1] <= 58)
                    {
                        return(CalculatedCoordinates(info[1], countOfRowsRegions[info[0] - 1], coordinatesRegions[info[0] - 1]));
                    }
                    else
                    {
                        return(coordinatesRegion3Row59_65[info[1]]);
                    }
                }

                case 2:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9:
                case 10:
                case 11:
                    return(CalculatedCoordinates(info[1], countOfRowsRegions[info[0] - 1], coordinatesRegions[info[0] - 1]));

                default:
                    return(null);
                }
            }
            // Если тип места это Старый Колумбарий, то считаем координаты с другими начальными\конечными точками.
            else if (type == TypePlaces.Старый_Колумбарий)
            {
                return(CalculatedCoordinates(info[0], countOfSectionOldColumbary, coordinatesOldColumbary));
            }
            // Аналогично и для Нового Колумбария
            else
            {
                return(CalculatedCoordinates(info[0] - 115, countOfSectionNewColumbary, coordinatesNewColumbary));
            }
        }
示例#2
0
 public Human(string info)
 {
     try
     {
         // Строка с ФИО, данными об участке,месте,ряду и точных координатах.
         string[] generalInformation = info.Split(";");
         // Строка с ФИО, и данными о участке,месте,ряду.
         List <string> nameAndСoordinates = generalInformation[0].Split(" ").ToList();
         // Фамилию делаем в нижнем регистре.
         StringBuilder str = new StringBuilder(nameAndСoordinates[0].ToLower());
         // Делаем первую букву в верхнем регистре.
         str[0] = char.ToUpper(str[0]);
         nameAndСoordinates[0] = str.ToString();
         // Записываем отдельно информацию о месте,ряду,участке.
         string coordinates = nameAndСoordinates[nameAndСoordinates.Count - 1];
         // Удаляем ее из списка с ФИО.
         nameAndСoordinates.RemoveAt(nameAndСoordinates.Count - 1);
         // Записываем информацию о ФИО в поле fullName.
         fullName = string.Join(" ", nameAndСoordinates);
         //Парсим данные о рассположении.
         string[] coordinatesArray = coordinates.Split("-");
         // Если в значении номера участка содержится спец. символ [, то место расположено в Колумбарии.
         if (coordinatesArray[0].Contains('['))
         {
             plot  = int.Parse(coordinatesArray[0].Trim('[', ']'));
             row   = -1;
             place = $"{coordinatesArray[1]}-{coordinatesArray[2]}";
             // Если участок меньше 116, то метсо расположено в Старом Колумбарии.
             if (plot < 116)
             {
                 typePlace = TypePlaces.Старый_Колумбарий;
             }
             // Иначе в новом.
             else
             {
                 typePlace = TypePlaces.Новый_Колумбарий;
             }
         }
         // Если не содержится спец символ, то место находится в одном из основных участков.
         else
         {
             typePlace = TypePlaces.Основное_Кладбище;
             plot      = int.Parse(coordinatesArray[0]);
             row       = int.Parse(coordinatesArray[1].Replace("а", ""));
             place     = coordinatesArray[2];
         }
         // Если в базе данных нет коориднат, то вызываем собственный метод, по подсчету координат.
         if (generalInformation[1] == string.Empty)
         {
             coordinatesForMap = GetCoordinates.GetCoordinatesFromInfo(typePlace, plot, row);
         }
         // Если есть,то парсим и записываем их в формате LatLng.
         else
         {
             double[] coordinatesForMap = generalInformation[1].Split(",").Select(x => double.Parse(x.Replace('.', ','))).ToArray();
             this.coordinatesForMap = new LatLng(coordinatesForMap[0], coordinatesForMap[1]);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }