public async Task <IActionResult> PrestarInsumos(string prestamos, string documento)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   crear   = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any();
                if (crear)
                {
                    dynamic prestamosJson           = JsonConvert.DeserializeObject(prestamos);
                    List <Col_Prestamos> _prestamos = new List <Col_Prestamos>();
                    foreach (dynamic item in prestamosJson)
                    {
                        Col_Prestamos _prestamo = new Col_Prestamos();
                        _prestamo.Cantidad      = item.Cantidad;
                        _prestamo.FechaPrestamo = Convert.ToDateTime(item.FechaPrestamo.ToString());
                        _prestamo.Motivo        = item.Motivo;
                        _prestamo.SuministroId  = item.SuministroId;
                        _prestamos.Add(_prestamo);
                    }
                    ApiCallResult data = await service.PrestarInsumos(_prestamos, documento);

                    return(Json(data));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
Esempio n. 2
0
        private async Task <ApiCallResult <T> > DoRequestAsync <T>(string method, string uri, string body, string mimeType) where T : class
        {
            HttpRequestMessage req = new HttpRequestMessage(new HttpMethod(method), uri);

            if (body != null)
            {
                req.Content = new StringContent(body);
                req.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(mimeType ?? "application/json");
            }

            HttpResponseMessage hrm = await client.SendAsync(req);

            string responseBody = await hrm.Content.ReadAsStringAsync();

            T      obj   = null;
            string mType = hrm.Content.Headers.ContentType.MediaType?.ToLower();

            if (!string.IsNullOrWhiteSpace(responseBody) && (mType == "application/json" || mType == "application/ld+json"))
            {
                obj = JsonConvert.DeserializeObject <T>(responseBody);
            }

            ApiCallResult <T> result = new ApiCallResult <T>((int)hrm.StatusCode, obj, responseBody, string.IsNullOrWhiteSpace(responseBody));

            return(result);
        }
Esempio n. 3
0
        public async Task <IActionResult> AgregarMateriasHorario(string horario)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   crear   = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any();
                if (crear)
                {
                    dynamic      horarioJson = JsonConvert.DeserializeObject(horario);
                    Col_Horarios _horario    = new Col_Horarios();
                    _horario.MateriaId = horarioJson.MateriaId;
                    _horario.CursoId   = horarioJson.CursoId;
                    _horario.HoraIni   = horarioJson.HoraIni;
                    _horario.HoraFin   = horarioJson.HoraFin;
                    ApiCallResult result = await service.AgregarMateriasHorario(_horario);

                    return(Json(result));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
Esempio n. 4
0
        public async Task <IActionResult> GuardarMarterias(string materia)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   crear   = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any();
                if (crear)
                {
                    dynamic      materiaJson = JsonConvert.DeserializeObject(materia);
                    Col_Materias _materia    = new Col_Materias();
                    _materia.Codigo      = materiaJson.Codigo;
                    _materia.Nombre      = materiaJson.Nombre;
                    _materia.Color       = materiaJson.Color;
                    _materia.Descripcion = materiaJson.Descripcion;
                    ApiCallResult result = await service.GuardarMaterias(_materia);

                    return(Json(result));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
        public async Task <IActionResult> GuardarSuministros(string suministros)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   crear   = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any();
                if (crear)
                {
                    dynamic         suministroJson = JsonConvert.DeserializeObject(suministros);
                    Col_Suministros _suministro    = new Col_Suministros();
                    _suministro.Descripcion    = suministroJson.Descripcion;
                    _suministro.Nombre         = suministroJson.Nombre;
                    _suministro.Stock          = suministroJson.Stock;
                    _suministro.Talla          = suministroJson.Talla;
                    _suministro.Linea          = suministroJson.Linea;
                    _suministro.TipoSuministro = suministroJson.TipoSuministro;
                    ApiCallResult result = await service.GuardarSuministros(_suministro);

                    return(Json(result));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
        public async Task <IActionResult> DevolverInsumos(string devoluciones)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   crear   = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any();
                if (crear)
                {
                    dynamic             devolucionJson = JsonConvert.DeserializeObject(devoluciones);
                    List <Devoluciones> _devoluciones  = new List <Devoluciones>();
                    foreach (dynamic item in devolucionJson)
                    {
                        Devoluciones _devolucion = new Devoluciones();
                        _devolucion.IdPersona    = item.idPersona;
                        _devolucion.IdPrestamo   = item.idPrestamo;
                        _devolucion.Devolver     = item.incremento;
                        _devolucion.SuministroId = item.suministroId;
                        _devolucion.Cantidad     = item.cantidadActual;
                        _devoluciones.Add(_devolucion);
                    }
                    ApiCallResult insumos = await service.DevolverInsumos(_devoluciones);

                    return(Json(insumos));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
        private async Task GetTransactionPositionsBySingleAddress(string paymentAddress, SortedSet <Tuple <Int64, string> > txPositions, Stopwatch stopWatch)
        {
            Utils.CheckIfChainIsFresh(chain_, config_.AcceptStaleRequests);

            using (var address = new PaymentAddress(paymentAddress))
            {
                //Unconfirmed first
                GetUnconfirmedTransactionPositions(address, txPositions);
                //3
                statsGetTransactions.Add(stopWatch.ElapsedMilliseconds);

                using (var getTransactionResult = await chain_.FetchConfirmedTransactionsAsync(address, UInt64.MaxValue, 0))
                {
                    Utils.CheckBitprimApiErrorCode(getTransactionResult.ErrorCode, "FetchConfirmedTransactionsAsync(" + paymentAddress + ") failed, check error log.");

                    //4
                    statsGetTransactions.Add(stopWatch.ElapsedMilliseconds);

                    INativeList <byte[]> confirmedTxIds = getTransactionResult.Result;

                    //Confirmed
                    foreach (byte[] txHash in confirmedTxIds)
                    {
                        ApiCallResult <GetTxPositionResult> getTxPosResult = await chain_.FetchTransactionPositionAsync(txHash, true);

                        string txHashStr = Binary.ByteArrayToHexString(txHash);
                        Utils.CheckBitprimApiErrorCode(getTxPosResult.ErrorCode, "FetchTransactionPositionAsync(" + txHashStr + ") failed, check error log");
                        txPositions.Add(new Tuple <Int64, string>((Int64)getTxPosResult.Result.BlockHeight, txHashStr));
                    }

                    //5
                    statsGetTransactions.Add(stopWatch.ElapsedMilliseconds);
                }
            }
        }
        public async Task <ActionResult> GetBlockByHash(string hash, int noTxList = 1)
        {
            if (!Validations.IsValidHash(hash))
            {
                return(BadRequest(hash + " is not a valid block hash"));
            }

            Utils.CheckIfChainIsFresh(chain_, config_.AcceptStaleRequests);

            string key = "block" + noTxList + hash;

            if (memoryCache_.TryGetValue(key, out JsonResult cachedBlockJson))
            {
                return(cachedBlockJson);
            }
            ;

            var binaryHash = Binary.HexStringToByteArray(hash);

            using (DisposableApiCallResult <GetBlockHeaderByHashTxSizeResult> getBlockResult = await chain_.FetchBlockHeaderByHashTxSizesAsync(binaryHash))
            {
                Utils.CheckBitprimApiErrorCode(getBlockResult.ErrorCode, "FetchBlockHeaderByHashTxSizesAsync(" + hash + ") failed, check error log");

                var getLastHeightResult = await chain_.FetchLastHeightAsync();

                Utils.CheckBitprimApiErrorCode(getLastHeightResult.ErrorCode, "FetchLastHeightAsync() failed, check error log");

                var blockHeight = getBlockResult.Result.Header.BlockHeight;

                ApiCallResult <GetBlockHashTimestampResult> getNextBlockResult = null;
                if (blockHeight != getLastHeightResult.Result)
                {
                    getNextBlockResult = await chain_.FetchBlockByHeightHashTimestampAsync(blockHeight + 1);

                    Utils.CheckBitprimApiErrorCode(getNextBlockResult.ErrorCode, "FetchBlockByHeightHashTimestampAsync(" + blockHeight + 1 + ") failed, check error log");
                }

                decimal  blockReward;
                PoolInfo poolInfo;
                using (DisposableApiCallResult <GetTxDataResult> coinbase = await chain_.FetchTransactionAsync(getBlockResult.Result.TransactionHashes[0], true))
                {
                    Utils.CheckBitprimApiErrorCode(coinbase.ErrorCode, "FetchTransactionAsync(" + getBlockResult.Result.TransactionHashes[0] + ") failed, check error log");
                    blockReward = Utils.SatoshisToCoinUnits(coinbase.Result.Tx.TotalOutputValue);
                    poolInfo    = poolsInfo_.GetPoolInfo(coinbase.Result.Tx);
                }

                JsonResult blockJson = Json(BlockToJSON
                                            (
                                                getBlockResult.Result.Header.BlockData, blockHeight, getBlockResult.Result.TransactionHashes,
                                                blockReward, getLastHeightResult.Result, getNextBlockResult?.Result.BlockHash,
                                                getBlockResult.Result.SerializedBlockSize, poolInfo, noTxList == 0)
                                            );

                memoryCache_.Set(key, blockJson, new MemoryCacheEntryOptions {
                    Size = Constants.Cache.BLOCK_CACHE_ENTRY_SIZE
                });
                return(blockJson);
            }
        }
Esempio n. 9
0
        protected override async Task OnInitializedAsync()
        {
            NewItem = new ItemCreateApiModel();

            ApiCallResult <IList <ItemApiModel> > apiCallResult = await AppHttpClient.GetAsync <IList <ItemApiModel> >(ApiUrls.GetItemsList);

            Items = apiCallResult.IsSuccess
        ? apiCallResult.Value !
        : throw new Exception("API call is not successful");
        }
        private async Task <TransactionSummary> TxToJSON(ITransaction tx, UInt64 blockHeight, bool confirmed,
                                                         bool returnLegacyAddresses, bool noAsm, bool noScriptSig,
                                                         bool noSpend)
        {
            UInt32 blockTimestamp = 0;
            string blockHash      = "";

            if (confirmed)
            {
                using (var getBlockHeaderResult = await chain_.FetchBlockHeaderByHeightAsync(blockHeight))
                {
                    Utils.CheckBitprimApiErrorCode(getBlockHeaderResult.ErrorCode, "FetchBlockHeaderByHeightAsync(" + blockHeight + ") failed, check error log");
                    IHeader blockHeader = getBlockHeaderResult.Result.BlockData;
                    blockTimestamp = blockHeader.Timestamp;
                    blockHash      = Binary.ByteArrayToHexString(blockHeader.Hash);
                }
            }
            ApiCallResult <UInt64> getLastHeightResult = await chain_.FetchLastHeightAsync();

            Utils.CheckBitprimApiErrorCode(getLastHeightResult.ErrorCode, "FetchLastHeightAsync failed, check error log");

            var txJson = new TransactionSummary();

            txJson.txid     = Binary.ByteArrayToHexString(tx.Hash);
            txJson.version  = tx.Version;
            txJson.locktime = tx.Locktime;
            txJson.vin      = await TxInputsToJSON(tx, returnLegacyAddresses, noAsm, noScriptSig);

            txJson.vout = await TxOutputsToJSON(tx, returnLegacyAddresses, noAsm, noSpend);

            txJson.confirmations = confirmed? getLastHeightResult.Result - blockHeight + 1 : 0;
            txJson.isCoinBase    = tx.IsCoinbase;
            txJson.valueOut      = Utils.SatoshisToCoinUnits(tx.TotalOutputValue);
            txJson.size          = tx.GetSerializedSize();
            UInt64 inputsTotal = await ManuallyCalculateInputsTotal(tx); //TODO Solve at native layer

            txJson.valueIn = Utils.SatoshisToCoinUnits(inputsTotal);
            if (confirmed)
            {
                txJson.blockhash   = blockHash;
                txJson.time        = blockTimestamp;
                txJson.blocktime   = blockTimestamp;
                txJson.blockheight = (Int64)blockHeight;
            }
            else
            {
                txJson.blockheight = -1;
                txJson.time        = (UInt32)DateTimeOffset.UtcNow.ToUnixTimeSeconds();
            }
            if (!tx.IsCoinbase)
            {
                txJson.fees = Utils.SatoshisToCoinUnits(inputsTotal - tx.TotalOutputValue); //TODO Solve at native layer
            }
            return(txJson);
        }
Esempio n. 11
0
 public IActionResult GuardarComentario(ComentarioSavedDto comentarioDto)
 {
     try
     {
         ApiCallResult result = this.blogService.GuardarComentario(comentarioDto);
         return(Json(result));
     }
     catch (Exception e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.InternalServerError, e.Message));
     }
 }
Esempio n. 12
0
 public IActionResult GuardarContenido(PrincipalDto principalDto)
 {
     try
     {
         ApiCallResult result = this.principalService.GuardarContenido(principalDto);
         return(Json(result));
     }
     catch (Exception e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.InternalServerError, e.Message));
     }
 }
Esempio n. 13
0
        /// <summary>
        /// Obtain an auth token using a username and password. Will automatically set this <see cref="BadgrClient"/>'s auth token if login is successful.
        /// </summary>
        /// <param name="username">Username or email</param>
        /// <param name="password">Password</param>
        /// <returns>An <see cref="AuthResponse"/> possibly containing an auth token.</returns>
        public async Task <ApiCallResult <AuthResponse> > AuthenticateAsync(string username, string password)
        {
            string uri  = $"{Endpoints.API_AUTH}{Endpoints.API_TOKEN}";
            string body = $"username={username}&password={password}";
            string mime = "application/x-www-form-urlencoded";
            ApiCallResult <AuthResponse> res = await DoPostAsync <AuthResponse>(uri, mime, body);

            if (res.Success)
            {
                SetAuthToken(res.Result.access_token, res.Result.refresh_token);
            }

            return(res);
        }
Esempio n. 14
0
        /// <summary>
        /// Refreshes an auth token. Set the token to refresh using <see cref="SetAuthToken(string)"/>
        /// </summary>
        /// <param name="refreshToken">The refresh token, used to refresh the bearer token</param>
        /// <returns></returns>
        public async Task <ApiCallResult <AuthResponse> > RefreshAuthTokenAsync(string refreshToken)
        {
            string url  = $"{Endpoints.API_AUTH}{Endpoints.API_TOKEN}";
            string body = $"grant_type=refresh_token&refresh_token={refreshToken}";
            string mime = "application/x-www-form-urlencoded";
            ApiCallResult <AuthResponse> res = await DoPostAsync <AuthResponse>(url, mime, body);

            if (res.Success)
            {
                SetAuthToken(res.Result.access_token, res.Result.refresh_token);
            }

            return(res);
        }
        public async Task <IActionResult> GuardarCuenta(string nombre, string titular, string numero)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   crear   = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any();
                if (crear)
                {
                    ApiCallResult result = await service.GuardarCuenta(nombre, titular, numero);

                    return(Json(result));
                }
                return(RedirectToAction("Index", "Home"));
            }
            return(RedirectToAction("Index", "Login"));
        }
Esempio n. 16
0
        protected override async Task HandleEventAsync()
        {
            if (!string.IsNullOrWhiteSpace(NewItem.Text))
            {
                ApiCallResult <ItemApiModel> itemCreationCallResult = await AppHttpClient
                                                                      .PostAsync <ItemApiModel>(ApiUrls.CreateItem, NewItem);

                Items.Add(
                    itemCreationCallResult.IsSuccess
            ? itemCreationCallResult.Value !
            : throw new Exception("API call is not successful")
                    );

                NewItem.Text = string.Empty;
            }
        }
Esempio n. 17
0
 public IActionResult GuardarEntradaYoutube(EntradaYoutubeDto youtubeDto)
 {
     try
     {
         ApiCallResult result = this.service.GuardarEntradaYoutube(youtubeDto);
         return(StatusCode((int)System.Net.HttpStatusCode.OK, result));
     }
     catch (NegocioExecption e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.NotFound, e.Message));
     }
     catch (Exception e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.InternalServerError, e.Message));
     }
 }
Esempio n. 18
0
 public IActionResult GuardarKeyWords(KeyWordDto keyWordDto)
 {
     try
     {
         ApiCallResult result = this.blogService.GuardarKeyWord(keyWordDto.Nombre);
         return(StatusCode((int)System.Net.HttpStatusCode.OK, result));
     }
     catch (NegocioExecption e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.NotFound, e.Message));
     }
     catch (Exception e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.InternalServerError, e.Message));
     }
 }
 public IActionResult ActualizarEntradaPost(BlogDetalleDto blogDto)
 {
     try
     {
         ApiCallResult result = this.podcastService.ActualizarEntradaPost(blogDto);
         return(StatusCode((int)System.Net.HttpStatusCode.OK, result));
     }
     catch (NegocioExecption e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.NotFound, e.Message));
     }
     catch (Exception e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.InternalServerError, e.Message));
     }
 }
 public IActionResult EliminarEntradaYoutube(string slug)
 {
     try
     {
         ApiCallResult result = this.podcastService.EliminarEntradaPodcast(slug);
         return(StatusCode((int)System.Net.HttpStatusCode.OK, result));
     }
     catch (NegocioExecption e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.NotFound, e.Message));
     }
     catch (Exception e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.InternalServerError, e.Message));
     }
 }
Esempio n. 21
0
        public async Task <IActionResult> GuardarCambios(string modulo, string subModulo, string rol, string descripcion, int idRol)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso    = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   crear      = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any();
                bool   actualizar = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Actualizar")).Any();
                if ((crear && idRol == 0) || (actualizar && idRol != 0))
                {
                    dynamic moduloJson    = JsonConvert.DeserializeObject(modulo);
                    dynamic subModuloJson = JsonConvert.DeserializeObject(subModulo);
                    List <Col_RolModulos>      modulos    = new List <Col_RolModulos>();
                    List <Col_SubModuloModulo> subModulos = new List <Col_SubModuloModulo>();
                    foreach (dynamic item in moduloJson)
                    {
                        Col_RolModulos _modulo = new Col_RolModulos();
                        _modulo.ModuloId     = item.ModuloId;
                        _modulo.PermisosCrud = item.PermisosCrud;
                        modulos.Add(_modulo);
                    }
                    if (subModuloJson.Count > 0)
                    {
                        foreach (dynamic item in subModuloJson)
                        {
                            Col_SubModuloModulo _subModulos = new Col_SubModuloModulo();
                            _subModulos.SubModuloId  = item.SubModuloId;
                            _subModulos.ModuloId     = item.ModuloId;
                            _subModulos.PermisosCrud = item.PermisosCrud;
                            subModulos.Add(_subModulos);
                        }
                    }

                    ApiCallResult result = idRol == 0 ? await service.GuardarAutorizaciones(modulos, subModulos, rol, descripcion) :
                                           await service.ActualizarAutorizaciones(modulos, subModulos, rol, descripcion, idRol);

                    return(Json(new { result }));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
 public IActionResult GuardarPodcast(BlogDetalleDto blogDto)
 {
     try
     {
         ApiCallResult result = this.podcastService.GuardarPodcast(blogDto);
         return(Ok(new
         {
             response = result,
         }));
     }
     catch (NegocioExecption e)
     {
         return(StatusCode(e.Codigo, e.Message));
     }
     catch (Exception e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.InternalServerError, e.Message));
     }
 }
Esempio n. 23
0
        public async Task <IActionResult> AgregarEnlaceProfesorHorario(int idHorario, string documento)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   crear   = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any();
                if (crear)
                {
                    ApiCallResult result = await service.AgregarEnlaceProfesorHorario(idHorario, documento);

                    return(Json(result));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
        public async Task <IActionResult> EliminarSuministros(int suministroId)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso  = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   eliminar = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Eliminar")).Any();
                if (eliminar)
                {
                    ApiCallResult insumos = await service.EliminarSuministros(suministroId);

                    return(Json(insumos));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
        public async Task <IActionResult> ActivarEmpleado(int personaId)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso    = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   actualizar = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Actualizar")).Any();
                if (actualizar)
                {
                    ApiCallResult result = await service.ActivarPerfil(personaId);

                    return(Json(result));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
        public async Task <IActionResult> GuardarAfiliacion(string afiliaciones, int rol, int laboralId, string persona, int afiliacioneActualizar)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso    = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   crear      = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any();
                bool   Actualizar = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Actualizar")).Any();
                if (crear || (Actualizar && afiliacioneActualizar != 0))
                {
                    dynamic afiliacionesJson = JsonConvert.DeserializeObject(afiliaciones);
                    dynamic personaJson      = JsonConvert.DeserializeObject(persona);

                    Col_Personas _persona = new Col_Personas();
                    _persona.TipoDocumento   = personaJson.TipoDocumento;
                    _persona.PrimerNombre    = personaJson.PrimerNombre;
                    _persona.PrimerApellido  = personaJson.PrimerApellido;
                    _persona.NumeroDocumento = personaJson.NumeroDocumento;

                    List <Col_Afiliacion> _afiliaciones = new List <Col_Afiliacion>();
                    foreach (dynamic item in afiliacionesJson)
                    {
                        Col_Afiliacion afiliacion = new Col_Afiliacion();
                        afiliacion.FechaAfiliacion = Convert.ToDateTime(item.FechaAfiliacion.ToString());
                        afiliacion.NombreEntidad   = item.NombreEntidad;
                        afiliacion.TipoEntidad     = item.TipoEntidad;
                        _afiliaciones.Add(afiliacion);
                    }
                    ApiCallResult result = afiliacioneActualizar == 0 ? await service.GuardarAfiliacion(_afiliaciones, rol, laboralId, _persona)
                        : await service.ActualizarAfiliciacion(_afiliaciones, afiliacioneActualizar);

                    return(Json(result));
                }
                return(RedirectToAction("Index", "Home"));
            }
            return(RedirectToAction("Index", "Login"));
        }
        private void AssertPushNotificationReturnedInfo(AppleApiNotificationPayLoad payLoad, ApiCallResult result)
        {
            var pushResult = result as PushNotificationApiCallResult;

            Assert.AreEqual(payLoad.DeviceUuid, pushResult.DeviceUuid);
            Assert.AreEqual(payLoad.Message, pushResult.NotificationMessage);
        }