//aprueba una solicitud de afiliación
 public bool Aprobar(Afiliado afiliado)
 {
     string RespuestaCardsJson = WSL.Cards.addClient(afiliado.docnumber.Substring(2), (afiliado.name + " " + afiliado.lastname1).ToUpper(), afiliado.phone1, "Plazas Baruta");
     if (ExceptionServicioCards(RespuestaCardsJson))
     {
         return false;
     }
     RespuestaCards RespuestaCards = (RespuestaCards)JsonConvert.DeserializeObject<RespuestaCards>(RespuestaCardsJson);
     using (LealtadEntities db = new LealtadEntities())
     {
         if (RespuestaCards.excode == "0" || RespuestaCards.excode == "7")
         {
             //Se buscan los datos de Tarjeta del AFILIADO en Cards
             //SERVICIO WSL.Cards.getClient !
             string clienteCardsJson = WSL.Cards.getClient(afiliado.docnumber.Substring(2));
             if (ExceptionServicioCards(clienteCardsJson))
             {
                 return false;
             }
             ClienteCards clienteCards = (ClienteCards)JsonConvert.DeserializeObject<ClienteCards>(clienteCardsJson);
             afiliado.pan = clienteCards.pan;
             afiliado.printed = clienteCards.printed;
             afiliado.estatustarjeta = clienteCards.tarjeta;
             afiliado.statusid = db.SumaStatuses.FirstOrDefault(s => (s.value == ID_ESTATUS_AFILIACION_ACTIVA) && (s.tablename == "Affiliatte")).id;//ID_ESTATUS_AFILIACION_ACTIVA;
             return SaveChanges(afiliado);
         }
         else
         {
             return false;
         }
     }
 }
 //acredita más en la cuenta del afiliado
 public bool Acreditar(Afiliado afiliado, string monto)
 {
     string RespuestaCardsJson = WSL.Cards.addBatch(afiliado.docnumber.Substring(2), monto, "318", (string)HttpContext.Current.Session["login"]);
     if (ExceptionServicioCards(RespuestaCardsJson))
     {
         return false;
     }
     RespuestaCards RespuestaCards = (RespuestaCards)JsonConvert.DeserializeObject<RespuestaCards>(RespuestaCardsJson);
     if (RespuestaCards.excode == "0")
     {
         return true;
     }
     else
     {
         return false;
     }
 }
        //bloquea la tarjeta actual y genera una nueva tarjeta para el afiliado
        public bool BloquearTarjeta(Afiliado afiliado)
        {
            string RespuestaCardsJson = WSL.Cards.addCard(afiliado.docnumber.Substring(2));
            if (ExceptionServicioCards(RespuestaCardsJson))
            {
                return false;
            }
            RespuestaCards RespuestaCards = (RespuestaCards)JsonConvert.DeserializeObject<RespuestaCards>(RespuestaCardsJson);
            if (RespuestaCards.excode == "0")
            {
                if (BorrarTarjeta(afiliado.pan))
                {
                    //Se buscan los datos de la nueva Tarjeta del AFILIADO en Cards
                    //SERVICIO WSL.Cards.getClient !
                    string clienteCardsJson = WSL.Cards.getClient(afiliado.docnumber.Substring(2));
                    if (ExceptionServicioCards(clienteCardsJson))
                    {
                        return false;
                    }
                    ClienteCards clienteCards = (ClienteCards)JsonConvert.DeserializeObject<ClienteCards>(clienteCardsJson);
                    afiliado.pan = clienteCards.pan;
                    afiliado.printed = clienteCards.printed;
                    afiliado.estatustarjeta = clienteCards.tarjeta;
                    return SaveChanges(afiliado);
                }
                else
                {
                    return false;
                }

            }
            else
            {
                return false;
            }
        }
 //suspende temporalmente la tarjeta del afiliado
 public bool SuspenderTarjeta(Afiliado afiliado)
 {
     string RespuestaCardsJson = WSL.Cards.cardStatus(afiliado.docnumber.Substring(2), ID_ESTATUS_TARJETA_SUSPENDIDA);
     if (ExceptionServicioCards(RespuestaCardsJson))
     {
         return false;
     }
     RespuestaCards RespuestaCards = (RespuestaCards)JsonConvert.DeserializeObject<RespuestaCards>(RespuestaCardsJson);
     if (RespuestaCards.excode == "0")
     {
         //Se buscan los datos de Tarjeta del AFILIADO en Cards
         //SERVICIO WSL.Cards.getClient !
         string clienteCardsJson = WSL.Cards.getClient(afiliado.docnumber.Substring(2));
         if (ExceptionServicioCards(clienteCardsJson))
         {
             return false;
         }
         ClienteCards clienteCards = (ClienteCards)JsonConvert.DeserializeObject<ClienteCards>(clienteCardsJson);
         afiliado.pan = clienteCards.pan;
         afiliado.printed = clienteCards.printed;
         afiliado.estatustarjeta = clienteCards.tarjeta;
         return SaveChanges(afiliado);
     }
     else
     {
         return false;
     }
 }
 //actualiza los datos en SumaPlazasStatuses
 public bool SaveChanges(Afiliado afiliado)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         // Entidad: Affiliate
         Affiliate affiliate = db.Affiliates.FirstOrDefault(a => a.id == afiliado.id);
         if (affiliate != null)
         {
             affiliate.storeid = afiliado.storeid;
             affiliate.channelid = afiliado.channelid;
             affiliate.typeid = afiliado.typeid;
             affiliate.typedelivery = afiliado.typedelivery;
             affiliate.storeiddelivery = afiliado.storeiddelivery;
             affiliate.modifieduserid = (int)HttpContext.Current.Session["userid"];
             affiliate.modifieddate = System.DateTime.Now;
             affiliate.statusid = afiliado.statusid;
             affiliate.reasonsid = afiliado.reasonsid;
             affiliate.twitter_account = afiliado.twitter_account;
             affiliate.facebook_account = afiliado.facebook_account;
             affiliate.instagram_account = afiliado.instagram_account;
             affiliate.comments = afiliado.comments;
         }
         // Entidad: CLIENTE
         CLIENTE cliente = db.CLIENTES.FirstOrDefault(c => c.TIPO_DOCUMENTO + "-" + c.NRO_DOCUMENTO == afiliado.docnumber);
         if (cliente != null)
         {
             cliente.NACIONALIDAD = afiliado.nationality;
             cliente.NOMBRE_CLIENTE1 = afiliado.name;
             cliente.NOMBRE_CLIENTE2 = afiliado.name2;
             cliente.APELLIDO_CLIENTE1 = afiliado.lastname1;
             cliente.APELLIDO_CLIENTE2 = afiliado.lastname2;
             cliente.FECHA_NACIMIENTO = DateTime.ParseExact(afiliado.birthdate, "dd-MM-yyyy", CultureInfo.InvariantCulture);
             cliente.SEXO = afiliado.gender;
             cliente.EDO_CIVIL = afiliado.maritalstatus;
             cliente.OCUPACION = afiliado.occupation;
             cliente.TELEFONO_HAB = afiliado.phone1;
             cliente.TELEFONO_OFIC = afiliado.phone2;
             cliente.TELEFONO_CEL = afiliado.phone3;
             cliente.COD_SUCURSAL = afiliado.storeid;
             cliente.COD_ESTADO = afiliado.cod_estado;
             cliente.COD_CIUDAD = afiliado.cod_ciudad;
             cliente.COD_MUNICIPIO = afiliado.cod_municipio;
             cliente.COD_PARROQUIA = afiliado.cod_parroquia;
             cliente.COD_URBANIZACION = afiliado.cod_urbanizacion;
         }
         // Entida: TARJETA
         TARJETA tarjeta = db.TARJETAS.FirstOrDefault(t => t.NRO_AFILIACION.Equals(afiliado.id));
         if (tarjeta != null)
         {
             tarjeta.ESTATUS_TARJETA = afiliado.estatustarjeta;
             tarjeta.COD_USUARIO = (int)HttpContext.Current.Session["userid"];
             tarjeta.FECHA_CREACION = DateTime.Now;
         }
         else if (afiliado.pan != null && afiliado.estatustarjeta != null)
         {
             tarjeta = new TARJETA()
             {
                 NRO_TARJETA = Convert.ToDecimal(afiliado.pan),
                 NRO_AFILIACION = afiliado.id,
                 TIPO_DOCUMENTO = afiliado.docnumber.Substring(0, 1),
                 NRO_DOCUMENTO = afiliado.docnumber.Substring(2),
                 ESTATUS_TARJETA = afiliado.estatustarjeta,
                 SALDO_PUNTOS = null,
                 OBSERVACIONES = null,
                 COD_USUARIO = (int)HttpContext.Current.Session["userid"],
                 TRACK1 = null,
                 TRACK2 = null,
                 CVV2 = null,
                 FECHA_CREACION = DateTime.Now
             };
             db.TARJETAS.Add(tarjeta);
         }
         // Entidad: CustomerInterest
         foreach (var m in db.CustomerInterests.Where(f => f.customerid == afiliado.id))
         {
             db.CustomerInterests.Remove(m);
         }
         foreach (var interes in afiliado.Intereses.Where(x => x.Checked == true))
         {
             CustomerInterest customerInterest = new CustomerInterest()
             {
                 customerid = afiliado.id,
                 interestid = interes.id,
                 comments = ""
             };
             db.CustomerInterests.Add(customerInterest);
         }
         //Entidad: AffiliateAud
         int statusidactual = (from a in db.Affiliates
                               where a.id.Equals(afiliado.id)
                               select a.statusid
                                ).SingleOrDefault();
         //Solo inserto registros cuando hay cambio de estado de Afiliación
         if (statusidactual != afiliado.statusid)
         {
             var affiliateAuditoria = new AffiliateAud()
             {
                 id = AfilliateAudID(),
                 affiliateid = afiliado.id,
                 modifieduserid = (int)HttpContext.Current.Session["userid"],
                 modifieddate = System.DateTime.Now,
                 statusid = afiliado.statusid,
                 reasonsid = ID_REASONS_INICIAL,
                 comments = afiliado.comments
             };
             db.AffiliateAuds.Add(affiliateAuditoria);
         }
         if (SaveWebPlazas(afiliado))
         {
             db.SaveChanges();
             return true;
         }
         else
         {
             return false;
         }
     }
 }
 //crea el afiliado en SumaPlazas (solicitud de afiliación)
 public bool Save(Afiliado afiliado, HttpPostedFileBase file)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         //ENTIDAD Affiliatte
         var Affiliate = new Affiliate()
         {
             id = AfilliatesID(),
             customerid = afiliado.customerid,
             docnumber = afiliado.docnumber,
             clientid = afiliado.clientid,
             storeid = afiliado.storeid,
             channelid = afiliado.channelid,
             typeid = afiliado.typeid,
             affiliatedate = System.DateTime.Now,
             typedelivery = afiliado.typedelivery,
             storeiddelivery = afiliado.storeiddelivery,
             estimateddatedelivery = new DateTime(),
             creationdate = DateTime.Now,
             creationuserid = (int)HttpContext.Current.Session["userid"],
             modifieddate = DateTime.Now,
             modifieduserid = (int)HttpContext.Current.Session["userid"],
             statusid = db.SumaStatuses.FirstOrDefault(s => (s.value == ID_ESTATUS_AFILIACION_INICIAL) && (s.tablename=="Affiliatte")).id,//ID_ESTATUS_AFILIACION_INICIAL,
             reasonsid = null,
             twitter_account = afiliado.twitter_account,
             facebook_account = afiliado.facebook_account,
             instagram_account = afiliado.instagram_account,
             comments = afiliado.comments
         };
         db.Affiliates.Add(Affiliate);
         //ENTIDAD CLIENTE
         var CLIENTE = new CLIENTE()
         {
             TIPO_DOCUMENTO = afiliado.docnumber.Substring(0, 1),
             NRO_DOCUMENTO = afiliado.docnumber.Substring(2),
             NACIONALIDAD = afiliado.nationality,
             NOMBRE_CLIENTE1 = afiliado.name,
             NOMBRE_CLIENTE2 = afiliado.name2 == null ? "" : afiliado.name2,
             APELLIDO_CLIENTE1 = afiliado.lastname1,
             APELLIDO_CLIENTE2 = afiliado.lastname2 == null ? "" : afiliado.lastname2,
             FECHA_NACIMIENTO = DateTime.ParseExact(afiliado.birthdate, "dd-MM-yyyy", CultureInfo.InvariantCulture),
             SEXO = afiliado.gender,
             EDO_CIVIL = afiliado.maritalstatus,
             OCUPACION = afiliado.occupation == null ? "" : afiliado.occupation,
             TELEFONO_HAB = afiliado.phone1,
             TELEFONO_OFIC = afiliado.phone2 == null ? "" : afiliado.cod_estado,
             TELEFONO_CEL = afiliado.phone3 == null ? "" : afiliado.cod_estado,
             E_MAIL = afiliado.email,
             COD_SUCURSAL = afiliado.storeid,
             COD_ESTADO = afiliado.cod_estado,
             COD_CIUDAD = afiliado.cod_ciudad,
             COD_MUNICIPIO = afiliado.cod_municipio,
             COD_PARROQUIA = afiliado.cod_parroquia,
             COD_URBANIZACION = afiliado.cod_urbanizacion,
             FECHA_CREACION = DateTime.Now
         };
         db.CLIENTES.Add(CLIENTE);
         //ENTIDAD CustomerInterest
         foreach (var interes in afiliado.Intereses.Where(x => x.Checked == true))
         {
             CustomerInterest customerInterest = new CustomerInterest()
             {
                 customerid = Affiliate.id,
                 interestid = interes.id,
                 comments = ""
             };
             db.CustomerInterests.Add(customerInterest);
         }
         //ENTIDAD Photos_Affiliate
         if (file != null)
         {
             try
             {
                 int length = file.ContentLength;
                 byte[] buffer = new byte[length];
                 file.InputStream.Read(buffer, 0, length);
                 var Photos_Affiliate = new Photos_Affiliate()
                 {
                     photo = buffer,
                     photo_type = file.ContentType,
                     Affiliate_id = Affiliate.id
                 };
                 db.Photos_Affiliates.Add(Photos_Affiliate);
             }
             catch
             {
                 return false;
             }
         }
         else
         {
             return false;
         }
         //ENTIDAD CompanyAffiliate
         var companyaffiliate = new CompanyAffiliate()
         {
             affiliateid = Affiliate.id,
             companyid = afiliado.companyid,
             begindate = DateTime.Now,
             enddate = new DateTime(),
             comments = afiliado.comments,
             active = true
         };
         db.CompanyAffiliates.Add(companyaffiliate);
         //ENTIDAD AffiliateAud
         var affiliateauditoria = new AffiliateAud()
         {
             id = AfilliateAudID(),
             affiliateid = Affiliate.id,
             modifieduserid = (int)HttpContext.Current.Session["userid"],
             modifieddate = System.DateTime.Now,
             statusid = Affiliate.statusid,
             reasonsid = ID_REASONS_INICIAL,
             comments = afiliado.comments
         };
         db.AffiliateAuds.Add(affiliateauditoria);
         if (SaveWebPlazas(afiliado))
         {
             db.SaveChanges();
             return true;
         }
         else
         {
             return false;
         }
     }
 }
 //busca los saldos y movimientos de las cuentas de un afiliado
 public SaldosMovimientos FindSaldosMovimientos(Afiliado afiliado)
 {
     SaldosMovimientos SaldosMovimientos = new SaldosMovimientos();
     SaldosMovimientos.DocId = afiliado.docnumber;
     string saldosJson = WSL.Cards.getBalance(SaldosMovimientos.DocId.Substring(2));
     if (ExceptionServicioCards(saldosJson))
     {
         return null;
     }
     SaldosMovimientos.Saldos = (List<Saldo>)JsonConvert.DeserializeObject<List<Saldo>>(saldosJson);
     string movimientosPrepagoJson = WSL.Cards.getBatch(SaldosMovimientos.Saldos.First().accounttype, SaldosMovimientos.DocId.Substring(2));
     if (ExceptionServicioCards(movimientosPrepagoJson))
     {
         return null;
     }
     SaldosMovimientos.MovimientosPrepago = (List<Movimiento>)JsonConvert.DeserializeObject<List<Movimiento>>(movimientosPrepagoJson);
     List<Movimiento> MovimientosPrepagoOrdenados = SaldosMovimientos.MovimientosPrepago.OrderByDescending(x => x.batchid).ToList();
     SaldosMovimientos.MovimientosPrepago = MovimientosPrepagoOrdenados.Take(3).ToList();
     foreach (Movimiento mov in SaldosMovimientos.MovimientosPrepago)
     {
         mov.fecha = mov.fecha.Substring(6, 2) + "-" + mov.fecha.Substring(4, 2) + "-" + mov.fecha.Substring(0, 4);
     }
     string movimientosLealtadJson = WSL.Cards.getBatch(SaldosMovimientos.Saldos.Skip(1).First().accounttype, SaldosMovimientos.DocId.Substring(2));
     if (ExceptionServicioCards(movimientosLealtadJson))
     {
         return null;
     }
     SaldosMovimientos.MovimientosSuma = (List<Movimiento>)JsonConvert.DeserializeObject<List<Movimiento>>(movimientosLealtadJson);
     List<Movimiento> MovimientosSumaOrdenados = SaldosMovimientos.MovimientosSuma.OrderByDescending(x => x.batchid).ToList();
     SaldosMovimientos.MovimientosSuma = MovimientosSumaOrdenados.Take(3).ToList();
     foreach (Movimiento mov in SaldosMovimientos.MovimientosSuma)
     {
         mov.fecha = mov.fecha.Substring(6, 2) + "-" + mov.fecha.Substring(4, 2) + "-" + mov.fecha.Substring(0, 4);
     }
     return SaldosMovimientos;
 }
 //actualiza los datos en WebPlazas
 private bool SaveWebPlazas(Afiliado afiliado)
 {
     string RespuestaWebPlazasJson = WSL.WebPlazas.UpdateClient(afiliado);
     if (ExceptionServicioWebPlazas(RespuestaWebPlazasJson))
     {
         return false;
     }
     RespuestaWebPlazas RespuestaWebPlazas = (RespuestaWebPlazas)JsonConvert.DeserializeObject<RespuestaWebPlazas>(RespuestaWebPlazasJson);
     return (RespuestaWebPlazas.excode == "0");
 }
 //busca un cliente en la WebPlazas a partir del documento de identificación
 public Afiliado Find(string numdoc, int typeid = ID_TYPE_SUMA, int companyid = ID_COMPANY_PLAZAS)
 {
     //Primero se buscan los datos de CLIENTE en WebPlazas
     //SERVICIO WSL.WebPlazas.getClientByNumDoc
     Afiliado afiliado = new Afiliado()
     {
         docnumber = numdoc
     };
     string clienteWebPlazasJson = WSL.WebPlazas.getClientByNumDoc(afiliado.docnumber);
     if (ExceptionServicioWebPlazas(clienteWebPlazasJson))
     {
         return null;
     }
     ClienteWebPlazas clienteWebPlazas = (ClienteWebPlazas)JsonConvert.DeserializeObject<ClienteWebPlazas>(clienteWebPlazasJson);
     if (clienteWebPlazas == null)
     {
         //No está en WebPlazas
         afiliado.clientid = 0;
     }
     else
     {
         afiliado.nationality = clienteWebPlazas.nationality.Replace("/","").Replace("\\","");
         afiliado.name = clienteWebPlazas.name.Replace("/", "").Replace("\\", "");
         afiliado.name2 = clienteWebPlazas.name2.Replace("/", "").Replace("\\", "");
         afiliado.lastname1 = clienteWebPlazas.lastname1.Replace("/", "").Replace("\\", "");
         afiliado.lastname2 = clienteWebPlazas.lastname2.Replace("/", "").Replace("\\", "");
         afiliado.birthdate = clienteWebPlazas.birthdate.Value.ToString("dd-MM-yyyy");
         afiliado.gender = clienteWebPlazas.gender.Replace("/", "").Replace("\\", "");
         afiliado.clientid = clienteWebPlazas.id;
         afiliado.maritalstatus = clienteWebPlazas.maritalstatus.Replace("/", "").Replace("\\", "");
         afiliado.occupation = clienteWebPlazas.occupation.Replace("/", "").Replace("\\", "");
         afiliado.phone1 = clienteWebPlazas.phone1.Replace("/", "").Replace("\\", "");
         afiliado.phone2 = clienteWebPlazas.phone2.Replace("/", "").Replace("\\", "");
         afiliado.phone3 = clienteWebPlazas.phone3.Replace("/", "").Replace("\\", "");
         afiliado.email = clienteWebPlazas.email.Replace("/", "").Replace("\\", "");
         afiliado.WebType = clienteWebPlazas.type;
         afiliado.ListaEstados = GetEstados();       //++
     }
     //Segundo se buscan los datos del AFILIADO en SumaPlazas
     using (LealtadEntities db = new LealtadEntities())
     {
         //Entidad Affiliate
         afiliado.id = (from a in db.Affiliates
                        where a.docnumber.Equals(afiliado.docnumber)
                        select a.id
                        ).SingleOrDefault();
         if (afiliado.id == 0)
         {
             //No está en SumaPlazas
             afiliado.Intereses = chargeInterestList();
             afiliado.typeid = typeid;
             afiliado.type = db.Types.FirstOrDefault(t => t.id == afiliado.typeid).name;
             afiliado.companyid = companyid;
         }
         else
         {
             //Esta en Suma, busco compañia asociada
             //Entidad CompanyAffiliate
             afiliado.companyid = (from co in db.CompanyAffiliates
                                   where co.affiliateid.Equals(afiliado.id)
                                   select co.companyid
                                   ).SingleOrDefault();
             //ENTIDAD TYPE
             //afiliado.typeid = TipoAfiliacionUsuario((int)HttpContext.Current.Session["userid"]);
             afiliado.typeid = (from a in db.Affiliates
                                where a.id.Equals(afiliado.id)
                                select a.typeid
                                ).SingleOrDefault();
             afiliado.type = db.Types.FirstOrDefault(t => t.id == afiliado.typeid).name;
             if (afiliado.typeid != typeid)
             {
                 //EL AFILIADO EXISTE Y NO PERTENECE AL TIPO DE AFILIACION SUMINISTRADO
                 afiliado.id = -1;
             }
             else if (afiliado.companyid != companyid)
             {
                 //EL AFILIADO EXISTE Y NO PERTENECE A LA COMPAÑIA SUMINISTRADA
                 afiliado.id = -2;
             }
             else
             {
                 //AFILIADO EXISTE Y PERTENECE AL TIPO DE AFILIACION Y A LA COMPAÑIA SUMINISTRADOS, se busca lo necesario para llenar el index de editar
                 //afiliado.statusid = (from a in db.Affiliates
                 //                     where a.docnumber.Equals(afiliado.docnumber)
                 //                     select a.statusid
                 //                     ).SingleOrDefault();
                 afiliado.statusid = db.Affiliates.FirstOrDefault(a => a.docnumber == afiliado.docnumber).statusid;
                 //afiliado.estatus = (from s in db.Status
                 //                    where s.id.Equals(afiliado.statusid)
                 //                    select s.name
                 //                    ).SingleOrDefault();
                 afiliado.estatus = db.Statuses.FirstOrDefault(s => s.id == afiliado.statusid).name;
             }
         }
     }
     return afiliado;
 }
 public ActionResult Edit(Afiliado afiliado)
 {
     ViewModel viewmodel = new ViewModel();
     if (!repAfiliado.SaveChanges(afiliado))
     {
         viewmodel.Title = "Afiliado / Revisar Afiliación";
         viewmodel.Message = "Existen campos que son requeridos para procesar el formulario.";
         viewmodel.ControllerName = "Afiliado";
         viewmodel.ActionName = "Index";
         viewmodel.RouteValues = afiliado.docnumber;
     }
     else
     {
         viewmodel.Title = "Afiliado / Revisar Afiliación";
         viewmodel.Message = "La información del afiliado ha sido actualizada satisfactoriamente.";
         viewmodel.ControllerName = "Afiliado";
         viewmodel.ActionName = "Index";
         viewmodel.RouteValues = afiliado.docnumber;
     }
     return RedirectToAction("GenericView", viewmodel);
 }
 public ActionResult Create(Afiliado afiliado, HttpPostedFileBase file)
 {
     ViewModel viewmodel = new ViewModel();
     if (repAfiliado.Save(afiliado, file))
     {
         #region validacion de carga de archivo
         //if (file != null && file.ContentLength > 0)
         //    try
         //    {
         //        string path = Server.MapPath(AppModule.GetPathPicture().Replace("@filename@", afiliado.docnumber));
         //        file.SaveAs(path);
         //    }
         //    catch (Exception ex)
         //    {
         //        viewmodel.Title = "Afiliado / Crear Afiliación";
         //        viewmodel.Message = "Error de aplicacion: No se pudo cargar archivo (" + ex.Message + ")";
         //        viewmodel.ControllerName = "Afiliado";
         //        viewmodel.ActionName = "Filter";
         //        return RedirectToAction("GenericView", viewmodel);
         //    }
         //else
         //{
         //    viewmodel.Title = "Afiliado / Crear Afiliación";
         //    viewmodel.Message = "Error de aplicacion: No se pudo cargar archivo (archivo inválido)";
         //    viewmodel.ControllerName = "Afiliado";
         //    viewmodel.ActionName = "Filter";
         //    return RedirectToAction("GenericView", viewmodel);
         //}
         #endregion
         viewmodel.Title = "Afiliado / Crear Afiliación";
         viewmodel.Message = "Solicitud de afiliación creada exitosamente.";
         viewmodel.ControllerName = "Afiliado";
         viewmodel.ActionName = "Index";
         viewmodel.RouteValues = afiliado.docnumber;
     }
     else
     {
         viewmodel.Title = "Afiliado / Crear Afiliación";
         viewmodel.Message = "Error de aplicacion: No se pudo crear solicitud de afiliación.";
         viewmodel.ControllerName = "Afiliado";
         viewmodel.ActionName = "Filter";
     }
     return RedirectToAction("GenericView", viewmodel);
 }
 public ActionResult Filter(int companyid)
 {
     Afiliado afiliado = new Afiliado();
     afiliado.companyid = companyid;
     return View(afiliado);
 }
 public ActionResult EditBeneficiario(Afiliado afiliado)
 {
     string companyid = afiliado.companyid.ToString();
     ViewModel viewmodel = new ViewModel();
     if (!repAfiliado.SaveChanges(afiliado))
     {
         viewmodel.Title = "Prepago / Beneficiario / Revisar Afiliación";
         viewmodel.Message = "Existen campos que son requeridos para procesar el formulario.";
         viewmodel.ControllerName = "CompanyPrepago";
         //viewmodel.ActionName = "CargarBeneficiarios";
         viewmodel.ActionName = "Beneficiarios";
         viewmodel.RouteValues = companyid;
     }
     else
     {
         viewmodel.Title = "Prepago / Beneficiario / Revisar Afiliación";
         viewmodel.Message = "La información del beneficiario ha sido actualizada satisfactoriamente.";
         viewmodel.ControllerName = "CompanyPrepago";
         //viewmodel.ActionName = "CargarBeneficiarios";
         viewmodel.ActionName = "Beneficiarios";
         viewmodel.RouteValues = companyid;
     }
     return RedirectToAction("GenericView", viewmodel);
 }
 public ActionResult CreateBeneficiario(Afiliado afiliado, HttpPostedFileBase file)
 {
     string companyid = afiliado.companyid.ToString();
     ViewModel viewmodel = new ViewModel();
     if (repAfiliado.Save(afiliado, file))
     {
         viewmodel.Title = "Prepago / Beneficiario / Crear Afiliación";
         viewmodel.Message = "Solicitud de afiliación creada exitosamente.";
         viewmodel.ControllerName = "CompanyPrepago";
         //viewmodel.ActionName = "CargarBeneficiarios";
         viewmodel.ActionName = "Beneficiarios";
         viewmodel.RouteValues = companyid;
     }
     else
     {
         viewmodel.Title = "Prepago / Beneficiario / Crear Afiliación";
         viewmodel.Message = "Error de aplicacion: No se pudo crear solicitud de afiliación.";
         viewmodel.ControllerName = "CompanyPrepago";
         //viewmodel.ActionName = "CargarBeneficiarios";
         viewmodel.ActionName = "Beneficiarios";
         viewmodel.RouteValues = companyid;
     }
     return RedirectToAction("GenericView", viewmodel);
 }