Ejemplo n.º 1
0
        public JsonResult EditLayer(LayerEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                Layer layer = model.CurrentLayer;
                Layer olrlayer;
                if (model.CurrentLayer.Geomtype == null)
                {
                    olrlayer = GetDictionaries()
                               .FirstOrDefault(d => d.Table_schema == layer.Table_schema && d.Table_name == layer.Table_name);
                }
                else
                {
                    olrlayer = GetLayers()
                               .FirstOrDefault(d => d.Table_schema == layer.Table_schema && d.Table_name == layer.Table_name);
                }

                bool?isupdaterCompare = null;
                if (layer.Isupdater != olrlayer.Isupdater)
                {
                    isupdaterCompare = layer.Isupdater;
                }
                bool?isloggerCompare = null;
                if (layer.Islogger != olrlayer.Islogger)
                {
                    isloggerCompare = layer.Islogger;
                }

                string descript = null;
                if (layer.Descript != olrlayer.Descript)
                {
                    if (layer.Descript == null)
                    {
                        descript = "";
                    }
                    else
                    {
                        descript = layer.Descript;
                    }
                }

                try
                {
                    _service.ChangeLayer(
                        layer.Table_schema,
                        layer.Table_name,
                        descript,
                        isupdaterCompare,
                        isloggerCompare
                        );
                }
                catch (Exception e)
                {
                    return(Json(new { error = e.Message }));
                }
            }
            else
            {
                string messages = string.Join("; ", ViewData.ModelState.Values
                                              .SelectMany(x => x.Errors)
                                              .Select(x => x.ErrorMessage));
                return(Json(new { error = messages }));
            }
            return(Json(new { status = "ok" }));
        }