Ejemplo n.º 1
0
        public async Task InvokeAsync(HttpContext context, IServiceProvider serviceProvider)
        {
            try
            {
                var requestPath = context.Request.Path.Value;
                if (!requestPath.StartsWith(PassAction, StringComparison.OrdinalIgnoreCase))
                {
                    await SetErrorResponseAsync(context, 400, "Bad Request");

                    return;
                }

                // read request
                PassRequest request;
                try
                {
                    request = await ReadPostRequestAsync <PassRequest>(context.Request);
                }
                catch (Exception ex)
                {
                    await SetErrorResponseAsync(context, 400, $"Bad Request ({ex.Message})");

                    return;
                }

                PassResponse response;
                try
                {
                    var receivedResponse = await SendRequestAsync(request);

                    response = new PassResponse()
                    {
                        IsReceived       = true,
                        ReceivedResponse = receivedResponse,
                    };
                }
                catch (Exception ex)
                {
                    response = new PassResponse()
                    {
                        IsReceived   = false,
                        ErrorMessage = $"Exception: {ex}",
                    };
                }

                // success
                context.Response.StatusCode = 200;
                var responseBody = JsonConvert.SerializeObject(response);
                context.Response.ContentType = "application/json";
                await context.Response.WriteAsync(responseBody);
            }
            catch (Exception ex)
            {
                await SetErrorResponseAsync(context, 500, ex.Message);

                return;
            }
        }
        /// <summary>
        /// Checks the pass.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public PassResponse CheckPass(PassRequest request)
        {
            PassResponse response = new PassResponse();

            try
            {
                if (ValidateUser(request.Token) == true)
                {
                    Entities       db = new Entities();
                    PassRequestHed PRH;

                    int ReqNo = Convert.ToInt16(request.PassNo);

                    // Get pass request details
                    PRH = db.PassRequestHeds.ToList().Where(p => p.PassReqNo == ReqNo && p.Issued == true).FirstOrDefault();

                    // Check whether there are any valid data
                    if (PRH.PassReqNo != 0)
                    {
                        response.isValid = true;

                        response.personName    = db.PassRequestDets.Where(i => i.PassReqNo == PRH.PassReqNo).Select(d => d.PersonName).First().ToString();
                        response.personNIC     = db.PassRequestDets.Where(i => i.PassReqNo == PRH.PassReqNo).Select(d => d.PersonNIC).First().ToString();
                        response.issuedCompany = db.Companies.Where(i => i.CompanyID == PRH.CompanyID).Select(d => d.CompanyName).First().ToString();
                        response.validFrom     = PRH.RequiredFrom;
                        response.validTo       = PRH.RequiredTo;
                    }
                    else
                    {
                        response.isValid = false;
                    }
                }
                else
                {
                    response.isValid = false;
                }
            }
            catch (Exception ex)
            {
                response.isValid = false;
                response.AuthenticationToken.SessionData = ex.Message;
            }

            return(response);
        }