public ActionResult Create(EmisorCreateViewModel model) {
            //var model = new EmisorCreateViewModel();
            var emisor = new Emisor();

            emisor.RFC = model.RFC;

            if (!string.IsNullOrEmpty(model.Nombre))
                emisor.Nombre = model.Nombre;

            if (model.DomicilioFiscal != null) {
                if (!string.IsNullOrEmpty(model.DomicilioFiscal.Pais)) {
                    emisor.DomicilioFiscal = new UbicacionFiscal {
                        Pais = model.DomicilioFiscal.Pais,
                        Calle = string.IsNullOrEmpty(model.DomicilioFiscal.Calle) ? null : model.DomicilioFiscal.Calle,
                        NoExterior = string.IsNullOrEmpty(model.DomicilioFiscal.NoExterior) ? null : model.DomicilioFiscal.NoExterior,
                        NoInterior = string.IsNullOrEmpty(model.DomicilioFiscal.NoInterior) ? null : model.DomicilioFiscal.NoInterior,
                        Colonia = string.IsNullOrEmpty(model.DomicilioFiscal.Colonia) ? null : model.DomicilioFiscal.Colonia,
                        Localidad = string.IsNullOrEmpty(model.DomicilioFiscal.Localidad) ? null : model.DomicilioFiscal.Localidad,
                        Municipio = string.IsNullOrEmpty(model.DomicilioFiscal.Municipio) ? null : model.DomicilioFiscal.Municipio,
                        Estado = string.IsNullOrEmpty(model.DomicilioFiscal.Estado) ? null : model.DomicilioFiscal.Estado,
                        CodigoPostal = string.IsNullOrEmpty(model.DomicilioFiscal.CodigoPostal) ? null : model.DomicilioFiscal.CodigoPostal,
                        Referencia = string.IsNullOrEmpty(model.DomicilioFiscal.Referencia) ? null : model.DomicilioFiscal.Referencia
                    };
                }
            }

            if (model.ExpedidoEn != null) {
                if (!string.IsNullOrEmpty(model.ExpedidoEn.Pais)) {
                    emisor.ExpedidoEn = new Ubicacion {
                        Pais = model.ExpedidoEn.Pais,
                        Calle = string.IsNullOrEmpty(model.ExpedidoEn.Calle) ? null : model.ExpedidoEn.Calle,
                        NoExterior = string.IsNullOrEmpty(model.ExpedidoEn.NoExterior) ? null : model.ExpedidoEn.NoExterior,
                        NoInterior = string.IsNullOrEmpty(model.ExpedidoEn.NoInterior) ? null : model.ExpedidoEn.NoInterior,
                        Colonia = string.IsNullOrEmpty(model.ExpedidoEn.Colonia) ? null : model.ExpedidoEn.Colonia,
                        Localidad = string.IsNullOrEmpty(model.ExpedidoEn.Localidad) ? null : model.ExpedidoEn.Localidad,
                        Municipio = string.IsNullOrEmpty(model.ExpedidoEn.Municipio) ? null : model.ExpedidoEn.Municipio,
                        Estado = string.IsNullOrEmpty(model.ExpedidoEn.Estado) ? null : model.ExpedidoEn.Estado,
                        CodigoPostal = string.IsNullOrEmpty(model.ExpedidoEn.CodigoPostal) ? null : model.ExpedidoEn.CodigoPostal,
                        Referencia = string.IsNullOrEmpty(model.ExpedidoEn.Referencia) ? null : model.ExpedidoEn.Referencia
                    };
                }
            }            

            if (!string.IsNullOrEmpty(model.RegimenFiscal)) 
                emisor.RegimenFiscal = new List<RegimenFiscal> {
                    new RegimenFiscal {
                        Regimen = model.RegimenFiscal
                    }
                };

            emisor.Telefono = string.IsNullOrWhiteSpace(model.Telefono) ? null : model.Telefono;
            emisor.Correo = string.IsNullOrWhiteSpace(model.Correo) ? null : model.Correo;

            emisor.CifUrl = string.IsNullOrWhiteSpace(model.CifUrl) ? null : model.CifUrl;
            emisor.LogoUrl = string.IsNullOrWhiteSpace(model.LogoUrl) ? null : model.LogoUrl;

            //if (!string.IsNullOrEmpty(model.RegimenFiscal)) {
            //    if (emisor.RegimenFiscal == null)
            //        emisor.RegimenFiscal = new List<RegimenFiscal>();
            //    emisor.RegimenFiscal.Add(new RegimenFiscal {
            //        Regimen = model.RegimenFiscal
            //    });
            //}

            if (model.ViewTemplateId != null) {
                emisor.ViewTemplateId = model.ViewTemplateId;
                emisor.ViewTemplate = this.DBContext.ViewTemplates.Find(model.ViewTemplateId); // .Where(v => v.PublicKey == publicKey).SingleOrDefault();
            }

            this.DBContext.Emisores.Add(emisor);
            this.DBContext.SaveChanges();

            return RedirectToAction("Details", new { Id = emisor.PublicKey.ToString("N") }); // "Index", "Home");

            //return View(model);
        }
 public ActionResult Create() {
     var model = new EmisorCreateViewModel();
     return View(model);
 }