public AutorizacionVer Autorizacion(Authorize model)
        {
            var autorizacionOs  = new AutorizacionOs();
            var autorizacionVer = new AutorizacionVer();

            try
            {
                model.Efector = DatosPrestador(Convert.ToInt32(model.PrestadorId));
                switch (model.OSId)
                {
                case 0:
                    break;

                case 1:    //Swiss Medical
                    var swiss = new OSSwiss();
                    autorizacionOs = swiss.Autorizar(model);
                    break;

                case 2:
                    var acaSalud = new OSAcaSalud();
                    autorizacionOs = acaSalud.Autorizar(model).Result;
                    break;

                case 5:
                case 8:
                    var boreal = new OSBoreal();
                    autorizacionOs = boreal.Autorizar(model);
                    break;

                case 6:
                    var medife = new OSMedife();
                    autorizacionOs = medife.Autorizar(model);
                    break;

                case 7:
                    var redSeguros = new OSRedSeguros();
                    autorizacionOs = redSeguros.Autorizar(model);
                    break;

                case 9:
                    var sancor = new OSSancor();
                    autorizacionOs = sancor.Autorizar(model);
                    break;

                case 10:
                    //Luz y Fuerza
                    break;

                case 11:
                    var os = new OSPatrones();
                    autorizacionOs = os.Autorizar(model);
                    break;
                }
                if (!autorizacionOs.HasError)
                {
                    var authNr = Autorizar(autorizacionOs);
                    //Todo Guardar en Base de Datos
                    // return cod Autorizacion;
                    //Al menos retornar codigo de Autorizacion
                    autorizacionVer.AuthNr            = autorizacionOs.CnroAutorizacion;// .CcodinternoAutorizacion;
                    autorizacionVer.Fecha             = autorizacionOs.DfecAutorizacion;
                    autorizacionVer.Afiliado          = autorizacionOs.CnomAfiliado;
                    autorizacionVer.Plan              = autorizacionOs.CdescripcionPlan;
                    autorizacionVer.Iva               = autorizacionOs.CdescripcionIva;
                    autorizacionVer.IdentificacionNro = autorizacionOs.NnroAfiliado;
                    autorizacionVer.Aseguradora       = model.OsNombre;
                    autorizacionVer.Matricula         = model.Efector.Matricula.ToString();
                    autorizacionVer.Profesional       = model.Efector.Name;
                    autorizacionVer.Estado            = autorizacionOs.EstadoAutorizacion;
                    autorizacionVer.Id = authNr;
                    foreach (var det in autorizacionOs.AutorizacionOsDet)
                    {
                        var authVerDet = new AutorizacionVerDet
                        {
                            Prestacion  = "(" + det.PracticaId + ") - " + det.PracticaDes,
                            Cantidad    = (string.IsNullOrEmpty(det.PracticaCantAprob) ? "1" : det.PracticaCantAprob),
                            Estado      = det.PracticaIdEstado,
                            Observacion = det.PracticaDetAuth
                        };
                        autorizacionVer.Detalle.Add(authVerDet);
                    }
                    ///Todo:Enviar Mail con info de Autoizacion
                    //SendMail.SendMailAutirizacion(autorizacionVer);
                }
                else
                {
                    autorizacionVer.HasError = autorizacionOs.HasError;
                    autorizacionVer.Error    = autorizacionOs.Error;
                }
            }
            catch (Exception ex)
            {
                autorizacionVer.SetError(GetType().Name, GetMethod.ErrorLine(ex), ex.Message, ex.InnerException?.ToString() ?? string.Empty, model, string.Empty);
            }
            return(autorizacionVer);
        }
        public AutorizacionVer Anular(int authId)
        {
            var anulacionOs     = new AnulacionOS();
            var autorizacionVer = new AutorizacionVer();

            try
            {
                var    auth  = new AutorizacionRepository();
                Anular model = auth.GetAuthDataById(authId);

                switch (model.OSId)
                {
                case 114:    //Swiss Medical
                    var swiss = new OSSwiss();
                    anulacionOs = swiss.Anular(model);
                    break;

                case 132:
                    var acaSalud = new OSAcaSalud();
                    anulacionOs = acaSalud.AnularAsync(model).Result;
                    break;

                case 137:
                case 192:
                    var boreal = new OSBoreal();
                    anulacionOs = boreal.Anular(model);
                    break;

                case 140:
                    var medife = new OSMedife();
                    anulacionOs = medife.Anular(model);
                    break;

                case 181:
                    var redSeguros = new OSRedSeguros();
                    anulacionOs = redSeguros.Anular(model);
                    break;

                case 148:
                    var sancor = new OSSancor();
                    anulacionOs = sancor.Anular(model);
                    break;

                case 141:     //Hay que cambiar por la correspondiente
                    var os = new OSPatrones();
                    anulacionOs = os.Anular(model);
                    break;
                }
                if (!anulacionOs.HasError)
                {
                    if (Anular(anulacionOs))
                    {
                        return(GetAuthBy(authId));
                    }
                    //todo mapear objeto
                    //return Al menos retornar codigo de anulacion
                }
                else
                {
                    autorizacionVer.HasError = anulacionOs.HasError;
                    autorizacionVer.Error    = anulacionOs.Error;
                }
            }
            catch (Exception ex)
            {
                autorizacionVer.SetError(GetType().Name, GetMethod.ErrorLine(ex), ex.Message, ex.InnerException?.ToString() ?? "", authId, string.Empty);
            }
            return(autorizacionVer);
        }