예제 #1
0
        public MainWindowViewModel()
        {
            GdalConfiguration.ConfigureGdal();

            Dictionary <int, LandcoverTypeViewModel> landcoverTypes = new Dictionary <int, LandcoverTypeViewModel>();

            foreach (LandcoverTypeViewModel landcoverType in LandcoverTypeViewModel.DefaultLandcoverTypesViewModel)
            {
                landcoverTypes.Add(landcoverType.Id, landcoverType);
            }
            LandcoverTypes = landcoverTypes.ToImmutableDictionary();

            ExitCommand = new RelayCommand(() => Application.Current.Shutdown(), () => true);

            CreateSlopeFromHeightmapCommand = new RelayCommand(() => new CreateSlopeFromHeightmapDialog().ShowDialog(), () => true);
            CreateTiledHeightmapCommand     = new RelayCommand(() => new CreateTiledHeightmapDialog().ShowDialog(), () => true);
            AddLayersCommand = new RelayCommand(AddBands, () => PredictionViewModel.NotBlocking);

            FlattenWaterDEMCommand = new RelayCommand(FlattenWaterDEM, () => true);
            FillDEMHolesCommand    = new RelayCommand(FillDEMHoles, () => true);

            MoveLayerDownCommand = new RelayCommand(MoveLayerDown, CanMoveDown);
            MoveLayerUpCommand   = new RelayCommand(MoveLayerUp, CanMoveUp);

            LandcoverTypesCommand = new RelayCommand(ChangeLandCoverTypes, () => true);

            Layers = new ObservableCollection <LayerViewModel>();
            Layers.CollectionChanged += (sender, args) =>
            {
                FeatureLayerView = new ObservableCollection <LayerViewModel>(Layers.Where(l => l.UseFeature).ToList());
            };

            ClassifierViewModel = new ClassifierViewModel(this);
            PredictionViewModel = new PredictionViewModel(this);
        }
예제 #2
0
        public void SaveYearCurrencyCourse(ClassifierViewModel model)
        {
            var u = new UnitOfWork();

            if (model.Id > 0)
            {
                var currency = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.Id);
                if (currency != null)
                {
                    currency.Code = model.Course.ToString();
                    u.Classifier.Edit(currency);
                    u.Classifier.Save();
                }
            }
            else
            {
                var type     = u.ClassifierType.GetAll().FirstOrDefault(w => w.Name == model.Type);
                var currency = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.CurrencyId);
                if (type == null || currency == null)
                {
                    return;
                }
                var newClassif = new Classifier()
                {
                    Name = $"Курс Евро на {model.Year} год ({currency.Name})", Code = model.Course.ToString(), Year = model.Year, Parent = currency, Active = true, ClassifierType = type, DateFrom = DateTime.Now, DateTo = DateTime.Now
                };
                u.Classifier.Add(newClassif);
                u.Classifier.Save();
            }
        }
예제 #3
0
        public void SaveInternalOrder(ClassifierViewModel model)
        {
            var u = new UnitOfWork();

            if (model.Id > 0)
            {
                var io        = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.Id);
                var ioMapping = u.IOMapping.GetAll().FirstOrDefault(f => f.InternalOrder.Id == io.Id);
                if (io != null)
                {
                    if (io.Name != model.Name || io.Code != model.Code || io.Active != model.Active)
                    {
                        io.Name   = model.Name;
                        io.Code   = model.Code;
                        io.Active = model.Active;

                        u.Classifier.Edit(io);
                        u.Classifier.Save();
                    }

                    if (ioMapping != null && (ioMapping.Brand.Id != model.Level2Id || ioMapping.Client.Id != model.Level1Id))
                    {
                        var brand  = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.Level2Id);
                        var client = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.Level1Id);
                        ioMapping.Brand  = brand;
                        ioMapping.Client = client;
                        ioMapping.Active = model.Active;
                        u.IOMapping.Edit(ioMapping);
                        u.IOMapping.Save();
                    }
                }
            }
            else
            {
                var type = u.ClassifierType.GetAll().FirstOrDefault(w => w.Name == model.Type);
                if (type == null)
                {
                    return;
                }
                var newClassif = new Classifier()
                {
                    Name = model.Name, Code = model.Code, Active = model.Active, ClassifierType = type, DateFrom = DateTime.Now, DateTo = DateTime.Now
                };
                u.Classifier.Add(newClassif);
                u.Classifier.Save();
                var brand        = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.Level2Id);
                var client       = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.Level1Id);
                var newIOMapping = new IOMapping()
                {
                    InternalOrder = newClassif, Client = client, Brand = brand, Active = model.Active
                };
                u.IOMapping.Add(newIOMapping);
                u.IOMapping.Save();
            }
        }
예제 #4
0
        public ActionResult Edit(ClassifierViewModel model)//сохраняю данные.
        {
            if (ModelState.IsValid)
            {
                var entity = classifierService.Edit(ClassifierMapper.ToEntity(model));//метод редактирования(сохранение/обновление), возвращает объект сущности, для дальнейшего использования.
                model = ClassifierMapper.ToViewModel(entity);

                return(RedirectToAction("Edit", "Classifier", new { id = model.Id }));//делаю перенаправлени на метод Get Edit(тот что выше)
            }
            return(View(model));
        }
예제 #5
0
        [HttpGet]//Get для наглядности, можно опустить.
        public ActionResult Edit(int id = 0)
        {
            ClassifierViewModel model = new ClassifierViewModel();//подготавливаю экземпляр объекта к использованию

            if (id > 0)
            {
                var entity = classifierService.GetById(id);   //получаю нужные данные по идентификатору.
                model = ClassifierMapper.ToViewModel(entity); //преобразую данные сущности в экземпляр модели представления.
            }

            return(View(model));
        }
예제 #6
0
 public static ClassifierOrganization ToEntity(ClassifierViewModel model)
 {
     return(new ClassifierOrganization
     {
         Alias = model.Alias,
         Id = model.Id,
         DateCreate = model.DateCreate,
         Description = model.Description,
         IsActive = model.IsActive,
         Name = model.Name,
         IsDelete = model.IsDelete,
     });
 }
예제 #7
0
        public ClassifierViewModel GetInternalOrder(long classifId, string type = "")
        {
            var u           = new UnitOfWork();
            var classifType = u.ClassifierType.GetActive().FirstOrDefault(w => w.Name == type);
            var sql         = $@"SELECT  C.[Id]
								, C.[Name]
								, C.[Active]
								, C.[Code]
								, CT.Name AS Type
								, CT.RusName AS TypeRus
								, C.ClassifierType_Id AS TypeId
							  , L2.Name AS Level2
							  , L1.Name AS Level1
							  , L2.Id AS Level2Id
							  , L1.Id AS Level1Id

							  FROM [dbo].[Classifier] AS C
							  LEFT JOIN [ClassifierType] AS CT
							  ON C.ClassifierType_Id = CT.Id
							   LEFT JOIN [IOMapping] AS IO
							  ON C.Id = IO.InternalOrder_Id
							  LEFT JOIN [Classifier] AS L2
							  ON IO.Brand_Id = L2.Id
							  LEFT JOIN [Classifier] AS L1
							  ON IO.Client_Id = L1.Id

								WHERE C.Id = {classifId} AND C.Deleted = 0
								Order by L1.Name, L2.Name, C.[Name]"                                ;

            var ddm  = new DirectDataManager(sql);
            var list = ddm.ToList <ClassifierViewModel>().ToList();

            if (list.Count == 0)
            {
                var newClassifier = new ClassifierViewModel();
                newClassifier.Active  = true;
                newClassifier.TypeId  = classifType.Id;
                newClassifier.Type    = classifType.Name;
                newClassifier.TypeRus = classifType.RusName;
                list.Add(newClassifier);
            }

            return(list.Count == 0 ? null : list[0]);
        }
예제 #8
0
        public void SaveClassifierModel(ClassifierViewModel model)
        {
            var u = new UnitOfWork();

            if (model.Id > 0)
            {
                var classif = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.Id);
                classif.Name   = model.Name;
                classif.Code   = model.Code;
                classif.Active = model.Active;
                if (model.Level2Id > 0 && (classif.Parent.Id != model.Level2Id))
                {
                    var parent = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.Level2Id);
                    if (parent != null)
                    {
                        classif.Parent = parent;
                    }
                }
                else
                {
                    if (model.Level1Id > 0 && (classif.Parent.Id != model.Level1Id))
                    {
                        var parent = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.Level1Id);
                        if (parent != null)
                        {
                            classif.Parent = parent;
                        }
                    }
                }

                u.Classifier.Edit(classif);
                u.Classifier.Save();
            }
            else
            {
                var type = u.ClassifierType.GetAll().FirstOrDefault(w => w.Name == model.Type);
                if (type == null)
                {
                    return;
                }
                var newClassif = new Classifier()
                {
                    Name = model.Name, Code = model.Code, Active = model.Active, ClassifierType = type, DateFrom = DateTime.Now, DateTo = DateTime.Now
                };
                if (model.Level2Id > 0)
                {
                    var parent = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.Level2Id);
                    if (parent != null)
                    {
                        newClassif.Parent = parent;
                    }
                }
                else
                {
                    if (model.Level1Id > 0)
                    {
                        var parent = u.Classifier.GetAll().FirstOrDefault(w => w.Id == model.Level1Id);
                        if (parent != null)
                        {
                            newClassif.Parent = parent;
                        }
                    }
                }
                u.Classifier.Add(newClassif);
                u.Classifier.Save();
            }
        }