public DataLayerApiViewModel(DataLayer layer)
 {
     Id = layer.Id;
     Name = layer.Name;
     Description = layer.Description;
     BaseLayerId = layer.BaseLayerId;
     Points = layer.Points?.Select(point => new PointApiViewModel(point)).ToList();
     Children = layer.Children?.Select(point => new DataLayerApiViewModel(point)).ToList();
 }
        public long Update(DataLayer model)
        {
            using (var context = new OpenMuseumContext())
            {
                context.Entry(model).State = EntityState.Modified;
                context.SaveChanges();

                return model.Id;
            }
        }
        public long Add(DataLayer model)
        {
            using (var context = new OpenMuseumContext())
            {
                var result = context.DataLayers.Add(model);
                context.Entry(result).State = EntityState.Added;
                context.SaveChanges();

                return result.Id;
            }
        }
        public ActionResult Add(DataLayer model)
        {
            try
            {
                var dataLayersRepository = new DataLayersRepository();

                dataLayersRepository.Add(model);

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
 public DataLayerViewModel(DataLayer layer)
 {
     Id = layer.Id;
     Name = layer.Name;
     Description = layer.Description;
     BaseLayerId = layer.BaseLayerId;
     BaseLayerName = layer.BaseLayer.Name;
     if (layer.Points != null)
         Points = layer.Points.ToList().Select(x => new PointViewModel(x)).ToList();
     HasChildren = layer.Children != null && layer.Children.Count > 0;
     if (layer.Children != null)
     {
         Children = layer.Children.ToList().Select(x => new DataLayerViewModel(x)).ToList();
     }
 }
        public ActionResult Edit(DataLayer model)
        {
            try
            {
                var dataLayersRepository = new DataLayersRepository();

                dataLayersRepository.Update(model);

                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                return View();
            }
        }