/// <summary>
        /// Processing TokenAuthorization} using SignatureCredential
        /// </summary>
        /// <param name="signCredential"></param>
        /// <param name="toknAuthorization"></param>
        /// <returns></returns>
        protected internal override Dictionary <string, string> ProcessTokenAuthorization(
            SignatureCredential signCredential, TokenAuthorization toknAuthorization)
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            try
            {
                OAuthGenerator sigGenerator = new OAuthGenerator(signCredential.UserName, signCredential.Password);
                sigGenerator.setHTTPMethod(OAuthGenerator.HTTPMethod.POST);
                sigGenerator.setToken(toknAuthorization.AccessToken);
                sigGenerator.setTokenSecret(toknAuthorization.TokenSecret);
                string tokenTimeStamp = Timestamp;
                sigGenerator.setTokenTimestamp(tokenTimeStamp);
                logger.Debug("token = " + toknAuthorization.AccessToken + " tokenSecret=" + toknAuthorization.TokenSecret + " uri=" + endpointURL);
                sigGenerator.setRequestURI(endpointURL);

                //Compute Signature
                string sign = sigGenerator.ComputeSignature();
                logger.Debug("Permissions signature: " + sign);
                string authorization = "token=" + toknAuthorization.AccessToken + ",signature=" + sign + ",timestamp=" + tokenTimeStamp;
                logger.Debug("Authorization string: " + authorization);
                headers.Add(BaseConstants.PAYPAL_AUTHORIZATION_PLATFORM_HEADER, authorization);
            }
            catch (OAuthException ae)
            {
                throw ae;
            }
            return(headers);
        }
        /// <summary>
        /// Processing for TokenAuthorization using SignatureCredential
        /// </summary>
        /// <param name="certCredential"></param>
        /// <param name="tokenAuthorize"></param>
        /// <returns></returns>
        protected override Dictionary <string, string> ProcessTokenAuthorization(CertificateCredential certCredential, TokenAuthorization tokenAuthorize)
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            try
            {
                OAuthGenerator signGenerator = new OAuthGenerator(certCredential.UserName, certCredential.Password);
                signGenerator.SetToken(tokenAuthorize.AccessToken);
                signGenerator.SetTokenSecret(tokenAuthorize.AccessTokenSecret);
                string tokenTimeStamp = Timestamp;
                signGenerator.SetTokenTimestamp(tokenTimeStamp);
                logger.DebugFormat("token = " + tokenAuthorize.AccessToken + " tokenSecret=" + tokenAuthorize.AccessTokenSecret + " uri=" + endpointUrl);
                signGenerator.SetRequestUri(endpointUrl);

                //Compute Signature
                string sign = signGenerator.ComputeSignature();
                logger.DebugFormat("Permissions signature: " + sign);
                string authorization = "token=" + tokenAuthorize.AccessToken + ",signature=" + sign + ",timestamp=" + tokenTimeStamp;
                logger.DebugFormat("Authorization string: " + authorization);
                headers.Add(BaseConstants.PayPalAuthorizationPlatformHeader, authorization);
            }
            catch (OAuthException oex)
            {
                throw oex;
            }
            return(headers);
        }
Esempio n. 3
0
        /// <summary>
        /// Set necessary authentication parameters
        /// </summary>
        /// <param name="httpRequest"></param>
        /// <param name="requestUri"></param>
        /// <returns></returns>
        public HttpWebRequest SetAuthenticationParams(HttpWebRequest httpRequest, string requestUri)
        {
            //TODO: get uri from httpRequest instead of passing in

            // Load and validate credentials
            apiCredentials = credMgr.GetCredentials(ApiUsername);
            credMgr.ValidateCredentials(apiCredentials);

            if (this.Token != null && this.TokenSecret != null)
            {
                OAuthGenerator sigGenerator =
                    new OAuthGenerator(apiCredentials.APIUsername, apiCredentials.APIPassword);

                //TODO: Add queryparams if a GET request
                sigGenerator.setHTTPMethod(httpRequest.Method);
                sigGenerator.setToken(this.Token);
                sigGenerator.setTokenSecret(this.TokenSecret);
                string tokenTimeStamp = GenerateTimeStamp();
                sigGenerator.setTokenTimestamp(tokenTimeStamp);
                log.Debug("token = " + Token + " tokenSecret=" + TokenSecret + " uri=" + requestUri);
                sigGenerator.setRequestURI(requestUri);

                //Compute Signature
                string sig = sigGenerator.ComputeSignature();
                log.Debug("Permissions signature: " + sig);
                string authorization = "token=" + Token + ",signature=" + sig + ",timestamp=" + tokenTimeStamp;
                log.Debug("Authorization string: " + authorization);
                httpRequest.Headers.Add(BaseConstants.XPAYPALSECURITYOAUTHSIGN, authorization);
                ////httpRequest.Headers.Add(BaseConstants.XPAYPALSECURITYCLIENTCERT, "No cert");
            }
            else
            {
                // Adding Credential and payload request/resposne information to the HttpWebRequest obejct's header
                httpRequest.Headers.Add(BaseConstants.XPAYPALSECURITYUSERID, apiCredentials.APIUsername);
                httpRequest.Headers.Add(BaseConstants.XPAYPALSECURITYPASSWORD, apiCredentials.APIPassword);

                /// Add the certificate to HttpWebRequest obejct if Profile is certificate enabled
                if ((apiCredentials is SignatureCredential))
                {
                    httpRequest.Headers.Add(BaseConstants.XPAYPALSECURITYSIGNATURE, ((SignatureCredential)apiCredentials).APISignature);
                }
                else
                {
                    // Load the certificate into an X509Certificate2 object.
                    if (((CertificateCredential)apiCredentials).PrivateKeyPassword.Trim() == string.Empty)
                    {
                        x509 = new X509Certificate2(((CertificateCredential)apiCredentials).CertificateFile);
                    }
                    else
                    {
                        x509 = new X509Certificate2(((CertificateCredential)apiCredentials).CertificateFile, ((CertificateCredential)apiCredentials).PrivateKeyPassword);
                    }
                    httpRequest.ClientCertificates.Add(x509);
                }
            }

            httpRequest.Headers.Add(BaseConstants.XPAYPALAPPLICATIONID, apiCredentials.ApplicationID);
            return(httpRequest);
        }
Esempio n. 4
0
        /// <summary>
        /// Function returns the Efile status of Form 941
        /// </summary>
        /// <param name="submissionId">SubmissionId is passed to get the efile status</param>
        /// <returns>Form941StatusResponse</returns>
        public ActionResult _GetEfileStatusResponse(Guid submissionId, Guid RecordId)
        {
            Form941StatusResponse efileStatusResponse = new Form941StatusResponse();

            if (submissionId != null && submissionId != Guid.Empty)
            {
                var efileRequest = new EfileStatusGetRequest {
                    SubmissionId = submissionId
                };
                var GetEfileStatusForm941ResponseJSON = string.Empty;
                // Request JSON
                var requestJson = JsonConvert.SerializeObject(efileRequest, Formatting.Indented);
                if (submissionId != null && submissionId != Guid.Empty)
                {
                    //Get URLs from App.Config
                    string apiUrl = Utility.GetAppSettings(Constants.PublicAPIUrlWithJWT);
                    //Get Access token from GetAccessToken Class
                    GetAccessToken AccessToken = new GetAccessToken(HttpContext);
                    //Get Access token from OAuth API response
                    var GeneratedAccessToken = AccessToken.GetGeneratedAccessToken();
                    //Access token is valid for one hour. After that call OAuth API again & get new Access token.

                    if (!string.IsNullOrWhiteSpace(GeneratedAccessToken))
                    {
                        using (var apiClient = new HttpClient())
                        {
                            //GET
                            var requestUri = "Form941/Status?SubmissionId=" + submissionId;
                            apiClient.BaseAddress = new Uri(apiUrl);
                            //Construct HTTP headers
                            //If Access token got expired, call OAuth API again & get new Access token.
                            OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, GeneratedAccessToken);
                            //Read Response
                            var _response = apiClient.GetAsync(requestUri).Result;
                            if (_response != null && _response.IsSuccessStatusCode)
                            {
                                var createResponse = _response.Content.ReadAsAsync <Form941StatusResponse>().Result;
                                if (createResponse != null)
                                {
                                    GetEfileStatusForm941ResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                    efileStatusResponse = new JavaScriptSerializer().Deserialize <Form941StatusResponse>(GetEfileStatusForm941ResponseJSON);
                                }
                            }
                            else
                            {
                                var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                                GetEfileStatusForm941ResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                efileStatusResponse = new JavaScriptSerializer().Deserialize <Form941StatusResponse>(GetEfileStatusForm941ResponseJSON);
                            }
                        }
                    }
                }
            }
            return(PartialView(efileStatusResponse));
        }
Esempio n. 5
0
        /// <summary>
        /// Function get the single Business return using BusinessId
        /// </summary>
        /// <param name="BusinessId">BusinessId passed to get the single Business return</param>
        /// <returns>BusinessGetReturnResponse</returns>
        public ActionResult GetBusinessByBusinessId(Guid BusinessId, string EinOrSSN)
        {
            var BusinessGetReturnResponse     = new BusinessGetResponse();
            var BusinessGetReturnResponseJSON = string.Empty;

            if (BusinessId != null && BusinessId != Guid.Empty)
            {
                //Get URLs from App.Config
                string ApiUrl = Utility.GetAppSettings(Constants.PublicAPIUrlWithJWT);

                //Get Access token from GetAccessToken Class
                GetAccessToken AccessToken = new GetAccessToken(HttpContext);
                //Get Access token from OAuth API response
                var GeneratedAccessToken = AccessToken.GetGeneratedAccessToken();
                if (!string.IsNullOrWhiteSpace(GeneratedAccessToken))
                {
                    using (var apiClient = new HttpClient())
                    {
                        //API URL to Get Business Return using BusinessId and EIN
                        string requestUri = "Business/Get?BusinessId=" + BusinessId + "&EIN=" + EinOrSSN;

                        apiClient.BaseAddress = new Uri(ApiUrl);
                        //Construct HTTP headers
                        OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, GeneratedAccessToken);
                        //Get Response
                        var _response = apiClient.GetAsync(requestUri).Result;
                        if (_response != null && _response.IsSuccessStatusCode)
                        {
                            //Read Response
                            var createResponse = _response.Content.ReadAsAsync <BusinessGetResponse>().Result;
                            if (createResponse != null)
                            {
                                BusinessGetReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                BusinessGetReturnResponse     = new JavaScriptSerializer().Deserialize <BusinessGetResponse>(BusinessGetReturnResponseJSON);
                                if (BusinessGetReturnResponse != null && BusinessGetReturnResponse.StatusCode == (int)StatusCodeList.Success)
                                {
                                    ViewData["BusinessGetResponseJSON"] = BusinessGetReturnResponseJSON;
                                    return(PartialView("_GetSIngleBusiness"));
                                }
                            }
                        }
                        else
                        {
                            var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                            BusinessGetReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                            BusinessGetReturnResponse     = new JavaScriptSerializer().Deserialize <BusinessGetResponse>(BusinessGetReturnResponseJSON);
                        }
                    }
                }
            }
            return(PartialView("_GetSIngleBusiness", BusinessGetReturnResponse));
        }
Esempio n. 6
0
        /// <summary>
        /// Function get the Form 941 Return to Efile
        /// </summary>
        /// <param name="submissionId">SubmissionId passed to get the 941 return</param>
        /// <returns>Form941GetReturnResponse</returns>
        public ActionResult GetForm941(Guid submissionId)
        {
            var getReturnResponse     = new Form941GetReturnResponse();
            var getReturnResponseJSON = string.Empty;

            if (submissionId != null && submissionId != Guid.Empty)
            {
                //Get URLs from App.Config
                string ApiUrl = Utility.GetAppSettings(Constants.PublicAPIUrlWithJWT);

                //Get Access token from GetAccessToken Class
                GetAccessToken AccessToken = new GetAccessToken(HttpContext);
                //Get Access token from OAuth API response
                var GeneratedAccessToken = AccessToken.GetGeneratedAccessToken();
                if (!string.IsNullOrWhiteSpace(GeneratedAccessToken))
                {
                    using (var apiClient = new HttpClient())
                    {
                        //API URL to Get Form 941 Return
                        string requestUri = "Form941/Get?submissionId=" + submissionId;

                        apiClient.BaseAddress = new Uri(ApiUrl);
                        //Construct HTTP headers
                        OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, GeneratedAccessToken);
                        //Get Response
                        var _response = apiClient.GetAsync(requestUri).Result;
                        if (_response != null && _response.IsSuccessStatusCode)
                        {
                            //Read Response
                            var createResponse = _response.Content.ReadAsAsync <Form941GetReturnResponse>().Result;
                            if (createResponse != null)
                            {
                                getReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                getReturnResponse     = new JavaScriptSerializer().Deserialize <Form941GetReturnResponse>(getReturnResponseJSON);
                                if (getReturnResponse != null && getReturnResponse.StatusCode == (int)StatusCodeList.Success)
                                {
                                    ViewData["GetResponseJSON"] = getReturnResponseJSON;
                                    return(PartialView());
                                }
                            }
                        }
                        else
                        {
                            var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                            getReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                            getReturnResponse     = new JavaScriptSerializer().Deserialize <Form941GetReturnResponse>(getReturnResponseJSON);
                        }
                    }
                }
            }
            return(PartialView(getReturnResponse));
        }
Esempio n. 7
0
        /// <summary>
        /// Function delete the Form 941 Return to Efile
        /// </summary>
        /// <param name="submissionId">SubmissionId passed to delete the 941 return</param>
        /// <returns>DeleteReturnResponse</returns>
        public ActionResult Delete(Guid submissionId)
        {
            var deleteReturnRequest      = new DeleteReturnRequest();
            var deleteReturnResponse     = new DeleteReturnResponse();
            var deleteReturnResponseJSON = string.Empty;

            if (submissionId != null && submissionId != Guid.Empty)
            {
                deleteReturnRequest.SubmissionId = submissionId;
                if (deleteReturnRequest.SubmissionId != null)
                {
                    //Get URLs from App.Config
                    string         ApiUrl               = Utility.GetAppSettings(Constants.PublicAPIUrlWithJWT);
                    GetAccessToken AccessToken          = new GetAccessToken(HttpContext);
                    var            GeneratedAccessToken = AccessToken.GetGeneratedAccessToken();
                    if (!string.IsNullOrWhiteSpace(GeneratedAccessToken))
                    {
                        using (var apiClient = new HttpClient())
                        {
                            //API URL to Transmit Form 941 Return
                            string requestUri = "Form941/Delete?submissionId=" + submissionId;

                            apiClient.BaseAddress = new Uri(ApiUrl);
                            //Construct HTTP headers
                            //If Access token got expired, call OAuth API again & get new Access token.
                            OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, GeneratedAccessToken);

                            //Get Response
                            var _response = apiClient.DeleteAsync(requestUri).Result;
                            if (_response != null && _response.IsSuccessStatusCode)
                            {
                                //Read Response
                                var createResponse = _response.Content.ReadAsAsync <DeleteReturnResponse>().Result;
                                if (createResponse != null)
                                {
                                    deleteReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                    deleteReturnResponse     = new JavaScriptSerializer().Deserialize <DeleteReturnResponse>(deleteReturnResponseJSON);
                                }
                            }
                            else
                            {
                                var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                                deleteReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                deleteReturnResponse     = new JavaScriptSerializer().Deserialize <DeleteReturnResponse>(deleteReturnResponseJSON);
                            }
                        }
                    }
                }
            }
            return(PartialView(deleteReturnResponse));
        }
Esempio n. 8
0
        /// <summary>
        /// Function delete the Business return using  BusinessId
        /// </summary>
        /// <param name="BusinessId">BusinessId passed to delete the Business return</param>
        /// <returns>DeleteReturnResponse</returns>
        public ActionResult Delete(Guid BusinessId)
        {
            var BusinessDeleteReturnRequest  = new BusinessDeleteRequest();
            var BusinessDeleteReturnResponse = new BusinessDeleteResponse();

            var deleteReturnResponseJSON = string.Empty;

            if (BusinessId != null && BusinessId != Guid.Empty)
            {
                if (BusinessId != null)
                {
                    //Get URLs from App.Config
                    string         ApiUrl               = Utility.GetAppSettings(Constants.PublicAPIUrlWithJWT);
                    GetAccessToken AccessToken          = new GetAccessToken(HttpContext);
                    var            GeneratedAccessToken = AccessToken.GetGeneratedAccessToken();
                    if (!string.IsNullOrWhiteSpace(GeneratedAccessToken))
                    {
                        using (var apiClient = new HttpClient())
                        {
                            //API URL to Delete  Business Return using  BusinessId
                            string requestUri = "Business/Delete?BusinessId=" + BusinessId;

                            apiClient.BaseAddress = new Uri(ApiUrl);
                            //Construct HTTP headers
                            OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, GeneratedAccessToken);

                            //Get Response
                            var _response = apiClient.DeleteAsync(requestUri).Result;
                            if (_response != null && _response.IsSuccessStatusCode)
                            {
                                //Read Response
                                var createResponse = _response.Content.ReadAsAsync <BusinessDeleteResponse>().Result;
                                if (createResponse != null)
                                {
                                    deleteReturnResponseJSON     = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                    BusinessDeleteReturnResponse = new JavaScriptSerializer().Deserialize <BusinessDeleteResponse>(deleteReturnResponseJSON);
                                }
                            }
                            else
                            {
                                var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                                deleteReturnResponseJSON     = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                BusinessDeleteReturnResponse = new JavaScriptSerializer().Deserialize <BusinessDeleteResponse>(deleteReturnResponseJSON);
                            }
                        }
                    }
                }
            }
            return(PartialView("_BusinessDeleteStatus", BusinessDeleteReturnResponse));
        }
Esempio n. 9
0
        public ActionResult CreateBusiness(BusinessCreateRequest FormBusiness)
        {
            var responseJson     = string.Empty;
            var BusinessResponse = new BusinessCreateReturnResponse();

            string ApiUrl = Utility.GetAppSettings(Constants.PublicAPIUrlWithJWT);
            // Generate JSON for Business
            var requestJson = JsonConvert.SerializeObject(FormBusiness, Formatting.Indented);
            //Get Access token from OAuth API response
            GetAccessToken AccessToken          = new GetAccessToken(HttpContext);
            string         GeneratedAccessToken = AccessToken.GetGeneratedAccessToken();

            if (!string.IsNullOrWhiteSpace(GeneratedAccessToken))
            {
                using (var apiClient = new HttpClient())
                {
                    //API URL to Business Create
                    string requestUri = "Business/Create";
                    apiClient.BaseAddress = new Uri(ApiUrl);
                    //Construct HTTP headers in Generated Token.
                    OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, GeneratedAccessToken);
                    //Post Response
                    var apiResponse = apiClient.PostAsJsonAsync(requestUri, FormBusiness).Result;
                    if (apiResponse != null && apiResponse.IsSuccessStatusCode)
                    {
                        //Read Response
                        var createResponse = apiResponse.Content.ReadAsAsync <BusinessCreateReturnResponse>().Result;
                        if (createResponse != null)
                        {
                            responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                            //Deserializing JSON (Success Response) to BusinessCreateReturnResponse object
                            BusinessResponse = new JavaScriptSerializer().Deserialize <BusinessCreateReturnResponse>(responseJson);
                        }
                    }
                    else
                    {
                        var createResponse = apiResponse.Content.ReadAsAsync <Object>().Result;
                        responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);

                        //Deserializing JSON (Error Response) to BusinessCreateReturnResponse object
                        BusinessResponse = new JavaScriptSerializer().Deserialize <BusinessCreateReturnResponse>(responseJson);
                    }
                }
            }

            return(PartialView("_BusinessReturnResponse", BusinessResponse));
        }
Esempio n. 10
0
        /// <summary>
        /// Function get the Business Return
        /// </summary>
        /// <returns>BusinessReturnList</returns>
        public ActionResult GetBusinessList()
        {
            var      ListReturnRepsone     = new BusinessListResponse();
            var      Business              = new List <Business>();
            var      getReturnResponseJSON = string.Empty;
            DateTime aDate = DateTime.Now;
            //Get URLs from App.Config
            string ApiUrl = Utility.GetAppSettings(Constants.PublicAPIUrlWithJWT);
            //Get Access token from GetAccessToken Class
            GetAccessToken AccessToken = new GetAccessToken(HttpContext);
            //Get Access token from OAuth API response
            var GeneratedAccessToken = AccessToken.GetGeneratedAccessToken();

            if (!string.IsNullOrWhiteSpace(GeneratedAccessToken))
            {
                using (var apiClient = new HttpClient())
                {
                    //API URL to Get Business List Return
                    string requestUri = "Business/List?Page=0&PageSize=10";

                    apiClient.BaseAddress = new Uri(ApiUrl);
                    //Construct HTTP headers
                    OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, GeneratedAccessToken);
                    //Get Response
                    var _response = apiClient.GetAsync(requestUri).Result;
                    if (_response != null && _response.IsSuccessStatusCode)
                    {
                        //Read Response
                        var createResponse = _response.Content.ReadAsAsync <BusinessListResponse>().Result;
                        if (createResponse != null)
                        {
                            getReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                            ListReturnRepsone     = new JavaScriptSerializer().Deserialize <BusinessListResponse>(getReturnResponseJSON);
                            Business = ListReturnRepsone.Businesses;
                        }
                    }
                    else
                    {
                        var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                        getReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                        ListReturnRepsone     = new JavaScriptSerializer().Deserialize <BusinessListResponse>(getReturnResponseJSON);
                    }
                }
            }
            return(PartialView("_GetBusinessList", Business));
        }
Esempio n. 11
0
        /// <summary>
        /// Function transmit the Form 941 Return to Efile
        /// </summary>
        /// <param name="submissionId">SubmissionId passed to transmit the 941 return</param>
        /// <returns>TransmitFormW2Response</returns>
        public ActionResult _TransmitReturn(Guid submissionId)
        {
            TransmitForm transmitForm941             = new TransmitForm();
            var          transmitForm941Response     = new TransmitForm941Response();
            var          transmitForm941ResponseJSON = string.Empty;

            if (submissionId != null && submissionId != Guid.Empty)
            {
                transmitForm941.SubmissionId = submissionId;
                // Generate JSON for TransmitForm 941
                var requestJson = JsonConvert.SerializeObject(transmitForm941, Formatting.Indented);
                if (transmitForm941 != null)
                {
                    //Get URLs from App.Config
                    string ApiUrl = Utility.GetAppSettings(Constants.PublicAPIUrlWithJWT);
                    //Get Access token from GetAccessToken Class
                    GetAccessToken AccessToken          = new GetAccessToken(HttpContext);
                    var            GeneratedAccessToken = AccessToken.GetGeneratedAccessToken();
                    if (!string.IsNullOrWhiteSpace(GeneratedAccessToken))
                    {
                        using (var apiClient = new HttpClient())
                        {
                            //API URL to Transmit Form 941 Return
                            string requestUri = "Form941/Transmit";

                            apiClient.BaseAddress = new Uri(ApiUrl);
                            //Construct HTTP headers
                            //If Access token got expired, call OAuth API again & get new Access token.
                            OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, GeneratedAccessToken);

                            //Get Response
                            var _response = apiClient.PostAsJsonAsync(requestUri, transmitForm941).Result;
                            if (_response != null && _response.IsSuccessStatusCode)
                            {
                                //Read Response
                                var createResponse = _response.Content.ReadAsAsync <TransmitForm941Response>().Result;
                                if (createResponse != null)
                                {
                                    transmitForm941ResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                    transmitForm941Response     = new JavaScriptSerializer().Deserialize <TransmitForm941Response>(transmitForm941ResponseJSON);
                                    if (transmitForm941Response.SubmissionId != null && transmitForm941Response.SubmissionId != Guid.Empty && transmitForm941Response.StatusCode == (int)StatusCodeList.Success)
                                    {
                                        //Updating Filing Status (Transmitted) for a specific SubmissionId in Session
                                        //bool Isupdated = APISession.UpdateForm941ReturnFilingStatus(transmitForm941Response.SubmissionId);
                                        //if (Isupdated)
                                        //{
                                        //    transmitForm941Response.IsReturnTransmitted = true;
                                        //}
                                    }
                                }
                            }
                            else
                            {
                                var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                                transmitForm941ResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                transmitForm941Response     = new JavaScriptSerializer().Deserialize <TransmitForm941Response>(transmitForm941ResponseJSON);
                            }
                        }
                    }
                }
            }
            return(PartialView(transmitForm941Response));
        }
Esempio n. 12
0
        public ActionResult CreateForm941(Form941Data form941)
        {
            var responseJson = string.Empty;

            form941.Sequence = Constants.Sequence;
            form941.RecordId = null;
            form941.ReturnHeader.ReturnType               = Constants.ReturnType;
            form941.ReturnHeader.Business.IsEIN           = true;
            form941.ReturnHeader.Business.IsForeign       = false;
            form941.ReturnData.Form941.IsPayrollTaxCredit = false;
            if (form941?.ReturnHeader?.ThirdPartyDesignee != null && (!string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.Name) || !string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.Phone) || !string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.PIN)))
            {
                form941.ReturnHeader.IsThirdPartyDesignee = true;
            }
            if (form941?.ReturnHeader?.BusinessStatusDetails != null)
            {
                if (form941.ReturnHeader.BusinessStatusDetails.IsBusinessClosed == false)
                {
                    form941.ReturnHeader.BusinessStatusDetails.BusinessClosedDetails = new BusinessClosedDetails();
                }
                if (form941.ReturnHeader.BusinessStatusDetails.IsBusinessTransferred == false)
                {
                    form941.ReturnHeader.BusinessStatusDetails.BusinessTransferredDetails = new BusinessTransferredDetails();
                }
            }

            var form941Response   = new Form941CreateReturnResponse();
            var form941ReturnList = new Form941CreateReturnRequest {
                Form941Records = new List <Form941Data>()
            };

            form941ReturnList.Form941Records.Add(form941);
            string ApiUrl = Utility.GetAppSettings(Constants.PublicAPIUrlWithJWT);
            // Generate JSON for Form 941
            var requestJson = JsonConvert.SerializeObject(form941ReturnList, Formatting.Indented);
            //Get Access token from OAuth API response
            GetAccessToken AccessToken          = new GetAccessToken(HttpContext);
            string         GeneratedAccessToken = AccessToken.GetGeneratedAccessToken();

            if (!string.IsNullOrWhiteSpace(GeneratedAccessToken))
            {
                using (var apiClient = new HttpClient())
                {
                    //API URL to Create Form 941 Return
                    string requestUri = "Form941/Create";
                    apiClient.BaseAddress = new Uri(ApiUrl);
                    //Construct HTTP headers in Generated Token.
                    OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, GeneratedAccessToken);
                    //Post Response
                    var apiResponse = apiClient.PostAsJsonAsync(requestUri, form941ReturnList).Result;
                    if (apiResponse != null && apiResponse.IsSuccessStatusCode)
                    {
                        //Read Response
                        var createResponse = apiResponse.Content.ReadAsAsync <Form941CreateReturnResponse>().Result;
                        if (createResponse != null)
                        {
                            responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                            //Deserializing JSON (Success Response) to Form941CreateReturnResponse object
                            form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                        }
                    }
                    else
                    {
                        var createResponse = apiResponse.Content.ReadAsAsync <Object>().Result;
                        responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);

                        //Deserializing JSON (Error Response) to Form941CreateReturnResponse object
                        form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                    }
                }
            }
            return(PartialView("APIResponseStatus", form941Response));
        }
        /// <summary>
        /// Function delete the Form 941 Return to Efile
        /// </summary>
        /// <param name="submissionId">SubmissionId passed to delete the 941 return</param>
        /// <returns>DeleteReturnResponse</returns>
        public ActionResult Delete(Guid submissionId)
        {
            var deleteReturnRequest      = new DeleteReturnRequest();
            var deleteReturnResponse     = new DeleteReturnResponse();
            var deleteReturnResponseJSON = string.Empty;

            if (submissionId != null && submissionId != Guid.Empty)
            {
                deleteReturnRequest.SubmissionId = submissionId;
                // Getting the RecordIds for SubmissionId
                var recordIdsFromSession = APISession.GetForm941RecordIdsBySubmissionId(submissionId);
                deleteReturnRequest.RecordIds = recordIdsFromSession != null ? recordIdsFromSession.RecordIds : null;
                if (deleteReturnRequest.RecordIds != null && deleteReturnRequest.RecordIds.Count > 0)
                {
                    string authType = Utility.GetAppSettings("AuthenticationType");
                    if (!string.IsNullOrWhiteSpace(authType) && authType.ToUpper() == "JWT")
                    {
                        //Get URLs from App.Config
                        string oAuthApiUrl = Utility.GetAppSettings("OAuthApiUrl");
                        string apiUrl      = Utility.GetAppSettings("PublicAPIUrlWithJWT");

                        //Call OAuth API
                        using (var oAuthClient = new HttpClient())
                        {
                            string oAuthRequestUri = Utility.GetAppSettings("OAuthApiMethodRoute");
                            oAuthClient.BaseAddress = new Uri(oAuthApiUrl);

                            //Generate JWS and get access token (JWT)
                            OAuthGenerator.GenerateJWSAndGetAccessToken(oAuthClient);

                            //Read OAuth API response
                            var response = oAuthClient.GetAsync(oAuthRequestUri).Result;
                            if (response != null && response.IsSuccessStatusCode)
                            {
                                var oauthApiResponse = response.Content.ReadAsAsync <AccessTokenResponse>().Result;
                                if (oauthApiResponse != null && oauthApiResponse.StatusCode == 200)
                                {
                                    //Get Access token from OAuth API response
                                    string accessToken = oauthApiResponse.AccessToken;
                                    //Access token is valid for one hour. After that call OAuth API again & get new Access token.

                                    if (!string.IsNullOrWhiteSpace(accessToken))
                                    {
                                        //Call TaxBandits API using the Access token
                                        //Access token is valid for one hour. After that call OAuth API again & get new Access token.
                                        using (var apiClient = new HttpClient())
                                        {
                                            //API URL to Transmit Form 941 Return
                                            string requestUri = "Form941/Delete";

                                            apiClient.BaseAddress = new Uri(apiUrl);
                                            //Construct HTTP headers
                                            //If Access token got expired, call OAuth API again & get new Access token.
                                            OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, accessToken);

                                            //Get Response
                                            var _response = apiClient.PostAsJsonAsync(requestUri, deleteReturnRequest).Result;
                                            if (_response != null && _response.IsSuccessStatusCode)
                                            {
                                                //Read Response
                                                var createResponse = _response.Content.ReadAsAsync <DeleteReturnResponse>().Result;
                                                if (createResponse != null)
                                                {
                                                    deleteReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                                    deleteReturnResponse     = new JavaScriptSerializer().Deserialize <DeleteReturnResponse>(deleteReturnResponseJSON);
                                                    if (deleteReturnResponse != null && deleteReturnResponse.StatusCode == (int)StatusCode.Success)
                                                    {
                                                        //Remove Submission and RecordId from session
                                                        APISession.DeleteForm941APIResponse(submissionId);
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                                                deleteReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                                deleteReturnResponse     = new JavaScriptSerializer().Deserialize <DeleteReturnResponse>(deleteReturnResponseJSON);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        using (var client = new PublicAPIClient())
                        {
                            //API URL to Transmit Form 941 Return
                            string requestUri = "Form941/Delete";

                            //POST
                            APIGenerateAuthHeader.GenerateAuthHeader(client, requestUri, "POST");

                            //Get Response
                            var _response = client.PostAsJsonAsync(requestUri, deleteReturnRequest).Result;
                            if (_response != null && _response.IsSuccessStatusCode)
                            {
                                //Read Response
                                var createResponse = _response.Content.ReadAsAsync <DeleteReturnResponse>().Result;
                                if (createResponse != null)
                                {
                                    deleteReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                    deleteReturnResponse     = new JavaScriptSerializer().Deserialize <DeleteReturnResponse>(deleteReturnResponseJSON);
                                    if (deleteReturnResponse != null && deleteReturnResponse.StatusCode == (int)StatusCode.Success)
                                    {
                                        //Remove Submission and RecordId from session
                                        APISession.DeleteForm941APIResponse(submissionId);
                                    }
                                }
                            }
                            else
                            {
                                var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                                deleteReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                deleteReturnResponse     = new JavaScriptSerializer().Deserialize <DeleteReturnResponse>(deleteReturnResponseJSON);
                            }
                        }
                    }
                }
            }
            return(PartialView(deleteReturnResponse));
        }
        /// <summary>
        /// Function get the Form 941 Return to Efile
        /// </summary>
        /// <param name="submissionId">SubmissionId passed to get the 941 return</param>
        /// <returns>Form941GetReturnResponse</returns>
        public ActionResult GetForm941(Guid submissionId)
        {
            var getReturnResponse     = new Form941GetReturnResponse();
            var getReturnResponseJSON = string.Empty;

            if (submissionId != null && submissionId != Guid.Empty)
            {
                string authType = Utility.GetAppSettings("AuthenticationType");
                if (!string.IsNullOrWhiteSpace(authType) && authType.ToUpper() == "JWT")
                {
                    //Get URLs from App.Config
                    string oAuthApiUrl = Utility.GetAppSettings("OAuthApiUrl");
                    string apiUrl      = Utility.GetAppSettings("PublicAPIUrlWithJWT");

                    //Call OAuth API
                    using (var oAuthClient = new HttpClient())
                    {
                        string oAuthRequestUri = Utility.GetAppSettings("OAuthApiMethodRoute");
                        oAuthClient.BaseAddress = new Uri(oAuthApiUrl);

                        //Generate JWS and get access token (JWT)
                        OAuthGenerator.GenerateJWSAndGetAccessToken(oAuthClient);

                        //Read OAuth API response
                        var response = oAuthClient.GetAsync(oAuthRequestUri).Result;
                        if (response != null && response.IsSuccessStatusCode)
                        {
                            var oauthApiResponse = response.Content.ReadAsAsync <AccessTokenResponse>().Result;
                            if (oauthApiResponse != null && oauthApiResponse.StatusCode == 200)
                            {
                                //Get Access token from OAuth API response
                                string accessToken = oauthApiResponse.AccessToken;
                                //Access token is valid for one hour. After that call OAuth API again & get new Access token.

                                if (!string.IsNullOrWhiteSpace(accessToken))
                                {
                                    //Call TaxBandits API using the Access token
                                    //Access token is valid for one hour. After that call OAuth API again & get new Access token.
                                    using (var apiClient = new HttpClient())
                                    {
                                        //API URL to Get Form 941 Return
                                        string requestUri = "Form941/Get?submissionId=" + submissionId;

                                        apiClient.BaseAddress = new Uri(apiUrl);
                                        //Construct HTTP headers
                                        //If Access token got expired, call OAuth API again & get new Access token.
                                        OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, accessToken);

                                        //Get Response
                                        var _response = apiClient.GetAsync(requestUri).Result;
                                        if (_response != null && _response.IsSuccessStatusCode)
                                        {
                                            //Read Response
                                            var createResponse = _response.Content.ReadAsAsync <Form941GetReturnResponse>().Result;
                                            if (createResponse != null)
                                            {
                                                getReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                                getReturnResponse     = new JavaScriptSerializer().Deserialize <Form941GetReturnResponse>(getReturnResponseJSON);
                                                if (getReturnResponse != null && getReturnResponse.StatusCode == (int)StatusCode.Success)
                                                {
                                                    ViewData["GetResponseJSON"] = getReturnResponseJSON;
                                                    return(PartialView());
                                                }
                                            }
                                        }
                                        else
                                        {
                                            var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                                            getReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                            getReturnResponse     = new JavaScriptSerializer().Deserialize <Form941GetReturnResponse>(getReturnResponseJSON);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    using (var client = new PublicAPIClient())
                    {
                        //API URL to Get Form 941 Return
                        string requestUri = "Form941/Get?submissionId=" + submissionId;

                        //Get
                        APIGenerateAuthHeader.GenerateAuthHeader(client, requestUri, "GET");

                        //Get Response
                        var _response = client.GetAsync(requestUri).Result;
                        if (_response != null && _response.IsSuccessStatusCode)
                        {
                            //Read Response
                            var createResponse = _response.Content.ReadAsAsync <Form941GetReturnResponse>().Result;
                            if (createResponse != null)
                            {
                                getReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                getReturnResponse     = new JavaScriptSerializer().Deserialize <Form941GetReturnResponse>(getReturnResponseJSON);
                                if (getReturnResponse != null && getReturnResponse.StatusCode == (int)StatusCode.Success)
                                {
                                    ViewData["GetResponseJSON"] = getReturnResponseJSON;
                                    return(PartialView());
                                }
                            }
                        }
                        else
                        {
                            var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                            getReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                            getReturnResponse     = new JavaScriptSerializer().Deserialize <Form941GetReturnResponse>(getReturnResponseJSON);
                        }
                    }
                }
            }
            return(PartialView(getReturnResponse));
        }
        public ActionResult APIResponseStatus(Form941Data form941)
        {
            //Hardcoded values for Sequence
            var responseJson = string.Empty;

            form941.Sequence = "Record1";
            form941.RecordId = null;
            form941.ReturnHeader.ReturnType         = null;
            form941.ReturnHeader.Business.IsEIN     = true;
            form941.ReturnHeader.Business.IsForeign = false;

            if (form941?.ReturnHeader?.ThirdPartyDesignee != null && (!string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.Name) || !string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.Phone) || !string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.PIN)))
            {
                form941.ReturnHeader.IsThirdPartyDesignee = true;
            }

            if (form941?.ReturnHeader?.BusinessStatusDetails != null)
            {
                if (form941.ReturnHeader.BusinessStatusDetails.IsBusinessClosed == false)
                {
                    form941.ReturnHeader.BusinessStatusDetails.BusinessClosedDetails = new BusinessClosedDetails();
                }
                if (form941.ReturnHeader.BusinessStatusDetails.IsBusinessTransferred == false)
                {
                    form941.ReturnHeader.BusinessStatusDetails.BusinessTransferredDetails = new BusinessTransferredDetails();
                }
            }

            var form941Response   = new Form941CreateReturnResponse();
            var form941ReturnList = new Form941CreateReturnRequest {
                Form941Records = new List <Form941Data>()
            };

            form941ReturnList.Form941Records.Add(form941);

            // Generate JSON for Form 941
            var    requestJson = JsonConvert.SerializeObject(form941ReturnList, Formatting.Indented);
            string authType    = Utility.GetAppSettings("AuthenticationType");

            if (!string.IsNullOrWhiteSpace(authType) && authType.ToUpper() == "JWT")
            {
                //Get URLs from App.Config
                string oAuthApiUrl = Utility.GetAppSettings("OAuthApiUrl");
                string apiUrl      = Utility.GetAppSettings("PublicAPIUrlWithJWT");

                //Call OAuth API
                using (var oAuthClient = new HttpClient())
                {
                    string oAuthRequestUri = Utility.GetAppSettings("OAuthApiMethodRoute");
                    oAuthClient.BaseAddress = new Uri(oAuthApiUrl);

                    //Generate JWS and get access token (JWT)
                    OAuthGenerator.GenerateJWSAndGetAccessToken(oAuthClient);

                    //Read OAuth API response
                    var response = oAuthClient.GetAsync(oAuthRequestUri).Result;
                    if (response != null && response.IsSuccessStatusCode)
                    {
                        var oauthApiResponse = response.Content.ReadAsAsync <AccessTokenResponse>().Result;
                        if (oauthApiResponse != null && oauthApiResponse.StatusCode == 200)
                        {
                            //Get Access token from OAuth API response
                            string accessToken = oauthApiResponse.AccessToken;
                            //Access token is valid for one hour. After that call OAuth API again & get new Access token.

                            if (!string.IsNullOrWhiteSpace(accessToken))
                            {
                                //Call TaxBandits API using the Access token
                                //Access token is valid for one hour. After that call OAuth API again & get new Access token.
                                using (var apiClient = new HttpClient())
                                {
                                    //API URL to Create Form 941 Return
                                    string requestUri = "Form941/Create";

                                    apiClient.BaseAddress = new Uri(apiUrl);

                                    //Construct HTTP headers
                                    //If Access token got expired, call OAuth API again & get new Access token.
                                    OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, accessToken);

                                    //Get Response
                                    var apiResponse = apiClient.PostAsJsonAsync(requestUri, form941ReturnList).Result;
                                    if (apiResponse != null && response.IsSuccessStatusCode)
                                    {
                                        //Read Response
                                        var createResponse = apiResponse.Content.ReadAsAsync <Form941CreateReturnResponse>().Result;
                                        if (createResponse != null)
                                        {
                                            responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                            //Deserializing JSON (Success Response) to Form941CreateReturnResponse object
                                            form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                                            if (form941Response.SubmissionId != null && form941Response.SubmissionId != Guid.Empty)
                                            {
                                                //Adding Form941CreateReturnResponse Response to Session
                                                APISession.AddForm941APIResponse(form941Response);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        var createResponse = apiResponse.Content.ReadAsAsync <Object>().Result;
                                        responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);

                                        //Deserializing JSON (Error Response) to Form941CreateReturnResponse object
                                        form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                using (var client = new PublicAPIClient())
                {
                    //API URL to Create Form 941 Return
                    string requestUri = "Form941/Create";

                    //POST
                    APIGenerateAuthHeader.GenerateAuthHeader(client, requestUri, HttpMethod.Post.ToString());

                    //Get Response
                    var response = client.PostAsJsonAsync(requestUri, form941ReturnList).Result;
                    if (response != null && response.IsSuccessStatusCode)
                    {
                        //Read Response
                        var createResponse = response.Content.ReadAsAsync <Form941CreateReturnResponse>().Result;
                        if (createResponse != null)
                        {
                            responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                            //Deserializing JSON (Success Response) to Form941CreateReturnResponse object
                            form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                            if (form941Response.SubmissionId != null && form941Response.SubmissionId != Guid.Empty)
                            {
                                //Adding Form941CreateReturnResponse Response to Session
                                APISession.AddForm941APIResponse(form941Response);
                            }
                        }
                    }
                    else
                    {
                        var createResponse = response.Content.ReadAsAsync <Object>().Result;
                        responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);

                        //Deserializing JSON (Error Response) to Form941CreateReturnResponse object
                        form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                    }
                }
            }

            return(PartialView(form941Response));
        }