using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ModelData.BusinessModel;
using ModelData.BusinessModel.MainEntities;
namespaceModelData.WebModel
{
publicclassWebDataManager
{
#region singlprivatestatic WebDataManager dataManager;
publicstatic WebDataManager Get()
{
if (dataManager == null)
dataManager = new WebDataManager();
return dataManager;
}
publicstaticvoidDestroy()
{
dataManager = null;
}
privateWebDataManager()
{
Init();
}
#endregion#region Data#endregion#region Methodspublic Model GetMapPoints(int YearMin, int YearMax)
{
Model model = new Model();
List<string> temp = new List<string>();
BusinessDataManager businessData = BusinessDataManager.Get();
var context = businessData.GetSettlements(YearMin, YearMax);
model.arraySettlements = context.MapPoints.ToArray();
// Сортировка массива по убыванию количества населения
Array.Sort(model.arraySettlements);
foreach (var type in context.SettlementTypes)
temp.Add(type.Title);
model.arrayNameTypes = temp.ToArray();
temp.Clear();
foreach (var region in context.Regions)
temp.Add(region.Title);
model.arrayNameRegions = temp.ToArray();
temp.Clear();
foreach (var settlement in context.MapPoints)
temp.Add(settlement.Title);
model.arrayNameSettlements = temp.ToArray();
// Инициализация уровней приближения убрана в связи с тем, что не найдено решения для оптимального отображения на карте// Вместо этого будут отображаться первые 40-50-100 самых крупных поселений (значение регулируется в JS коде)// Для этого в c# коде производится сортировка списка поселений по количеству населения//int maxPop = 0;//foreach (var settlement in context.MapPoints)//{// if (settlement.Population > maxPop)// maxPop = settlement.Population;// temp.Add(settlement.Title);//} //model.InitZoom(maxPop);return model;
}
public Settlement GetSettlement(string URL)
{
BusinessDataManager businessData = BusinessDataManager.Get();
return businessData.GetInfoAboutSettlement(URL);
}
publicstring[] GetSettlementsNames(string subName)
{
BusinessDataManager businessData = BusinessDataManager.Get();
return businessData.GetSettlementsNames(subName);
}
public (int min, int max) GetYears()
{
BusinessDataManager businessData = BusinessDataManager.Get();
return businessData.GetYears();
}
#region ToolsprivatevoidInit(int Count = 5)
{
}
#endregion#endregion
}
}