private void CopyToModel(CatProdServViewModel viewModel, Cat_ProductosServicios model)
 {
     model.Pk_ProductoServicio = viewModel.Pk_ProductoServicio;
     model.Pk_Empresa          = viewModel.Pk_Empresa;
     model.Clave_ProdServ_SAT  = viewModel.Clave_ProdServ_SAT;
     model.Clave_Ident         = viewModel.Clave_Ident;
     model.CodigoBarras        = viewModel.CodigoBarras;
     model.Clave_Unidad_SAT    = viewModel.Clave_Unidad_SAT;
     model.Unidad = viewModel.Unidad;
     model.Descripcion_ProdServ_Base = viewModel.Descripcion_ProdServ_Base;
     model.PrecioBase    = viewModel.PrecioBase;
     model.IVAT          = viewModel.IVAT;
     model.IEPST         = viewModel.IEPST;
     model.IVAR          = viewModel.IVAR;
     model.ISRR          = viewModel.ISRR;
     model.IEstatal      = viewModel.IEstatal;
     model.OtraRetencion = viewModel.OtraRetencion;
 }
        public async Task <IActionResult> Post(string values)
        {
            var model      = new Cat_ProductosServicios(_uow);
            var viewModel  = new CatProdServViewModel();
            var valuesDict = JsonConvert.DeserializeObject <IDictionary>(values);

            PopulateViewModel(viewModel, valuesDict);

            if (!TryValidateModel(viewModel))
            {
                return(BadRequest(GetFullErrorMessage(ModelState)));
            }

            CopyToModel(viewModel, model);

            await _uow.CommitChangesAsync();

            return(Json(model.Pk_ProductoServicio));
        }
        public async Task <IActionResult> Put(int key, string values)
        {
            var model = _uow.GetObjectByKey <Cat_ProductosServicios>(key, true);

            if (model == null)
            {
                return(StatusCode(409, "Object not found"));
            }

            var viewModel = new CatProdServViewModel {
                Pk_ProductoServicio = model.Pk_ProductoServicio,
                Pk_Empresa          = model.Pk_Empresa,
                Clave_ProdServ_SAT  = model.Clave_ProdServ_SAT,
                Clave_Ident         = model.Clave_Ident,
                CodigoBarras        = model.CodigoBarras,
                Clave_Unidad_SAT    = model.Clave_Unidad_SAT,
                Unidad = model.Unidad,
                Descripcion_ProdServ_Base = model.Descripcion_ProdServ_Base,
                PrecioBase    = model.PrecioBase,
                IVAT          = model.IVAT,
                IEPST         = model.IEPST,
                IVAR          = model.IVAR,
                ISRR          = model.ISRR,
                IEstatal      = model.IEstatal,
                OtraRetencion = model.OtraRetencion
            };

            var valuesDict = JsonConvert.DeserializeObject <IDictionary>(values);

            PopulateViewModel(viewModel, valuesDict);

            if (!TryValidateModel(viewModel))
            {
                return(BadRequest(GetFullErrorMessage(ModelState)));
            }

            CopyToModel(viewModel, model);

            await _uow.CommitChangesAsync();

            return(Ok());
        }
 private void PopulateViewModel(CatProdServViewModel viewModel, IDictionary values)
 {
     if (values.Contains(PK_PRODUCTOSERVICIO))
     {
         viewModel.Pk_ProductoServicio = Convert.ToInt32(values[PK_PRODUCTOSERVICIO]);
     }
     if (values.Contains(PK_EMPRESA))
     {
         viewModel.Pk_Empresa = Convert.ToInt32(values[PK_EMPRESA]);
     }
     if (values.Contains(CLAVE_PRODSERV_SAT))
     {
         viewModel.Clave_ProdServ_SAT = Convert.ToInt32(values[CLAVE_PRODSERV_SAT]);
     }
     if (values.Contains(CLAVE_IDENT))
     {
         viewModel.Clave_Ident = Convert.ToString(values[CLAVE_IDENT]);
     }
     if (values.Contains(CODIGOBARRAS))
     {
         viewModel.CodigoBarras = Convert.ToString(values[CODIGOBARRAS]);
     }
     if (values.Contains(CLAVE_UNIDAD_SAT))
     {
         viewModel.Clave_Unidad_SAT = Convert.ToInt32(values[CLAVE_UNIDAD_SAT]);
     }
     if (values.Contains(UNIDAD))
     {
         viewModel.Unidad = Convert.ToString(values[UNIDAD]);
     }
     if (values.Contains(DESCRIPCION_PRODSERV_BASE))
     {
         viewModel.Descripcion_ProdServ_Base = Convert.ToString(values[DESCRIPCION_PRODSERV_BASE]);
     }
     if (values.Contains(PRECIOBASE))
     {
         viewModel.PrecioBase = Convert.ToDecimal(values[PRECIOBASE]);
     }
     if (values.Contains(IVAT))
     {
         viewModel.IVAT = Convert.ToString(values[IVAT]);
     }
     if (values.Contains(IEPST))
     {
         viewModel.IEPST = Convert.ToString(values[IEPST]);
     }
     if (values.Contains(IVAR))
     {
         viewModel.IVAR = Convert.ToString(values[IVAR]);
     }
     if (values.Contains(ISRR))
     {
         viewModel.ISRR = Convert.ToString(values[ISRR]);
     }
     if (values.Contains(IESTATAL))
     {
         viewModel.IEstatal = Convert.ToString(values[IESTATAL]);
     }
     if (values.Contains(OTRARETENCION))
     {
         viewModel.OtraRetencion = Convert.ToString(values[OTRARETENCION]);
     }
 }