public HttpResponseMessage SalesLeadRequestAddTest(string authToken)
        {
            string apiEndPoint = ApiObject.ApiName + ".SalesLeadRequestTest/GET";

            this.CommonParams = new CommonParams(Request)
            {
                TimeoutInMill = 60000
            };
            //SalesLeadRequest request = new SalesLeadRequest();
            //SalesLeadRequest request = JsonConvert.DeserializeObject<SalesLeadRequest>("{\"LeadFile\":{\"ClientId\":399,\"FileType\":\"SalesLead\",\"Reason\":\"\",\"Source\":{\"Active\":true,\"Alias\":\"LoanTek.com\",\"Id\":44,\"SourceType\":\"LeadSource\",\"Name\":\"LoanTek.com\",\"SubName\":\"Contact - Us - Form\"},\"NotifyUserOfNewLead\":true,\"SendNewLeadInitialWelcomeMessage\":true,\"ClientDefinedIdentifier\":\"LTWS1462220067420\",\"Persons\":[{\"PersonCategoryType\":\"Person\",\"PersonType\":\"Primary\",\"FirstName\":\"Eric\",\"LastName\":\"Tjemsland\"}],\"MiscData\":[{\"Name\":\"AdditionalInformation\",\"Value\":\"\"},{\"Name\":\"PromoCode\",\"Value\":\"LPP01\"}]}}");
            var json = File.ReadAllText(@"D:\LoanTek\Current\com.LoanTek.APIs\com.LoanTek.API.Leads.Clients\_TestData\SalesLeadRequest.json");
            SalesLeadRequest request = JsonConvert.DeserializeObject <SalesLeadRequest>(json, Global.JsonSettings);

            return(this.SalesLeadRequestAdd(authToken, request));
        }
示例#2
0
        public HttpResponseMessage Add(string authToken, SalesLeadRequest request)
        {
            this.Sw.Start();
            this.EndPoint = "Contact";

            try
            {
                if (ApiWebService.ApiStatusType == Types.Api.ApiStatusType.Inactive)
                {
                    return(this.CreateErrorResponse(HttpStatusCode.BadRequest, "In-active Web Service / Endpoint", this.EndPoint));
                }

                HttpResponseMessage errorResponse = this.CommonChecks(request, this.EndPoint);
                if (errorResponse != null)
                {
                    return(errorResponse);
                }

                this.AuthToken = !string.IsNullOrEmpty(authToken) ? new AuthToken(authToken) : null;
                errorResponse  = this.Authorize(ApiWebService.WebServiceName, new AuthToken(authToken), request.LeadFile?.UserId ?? 0);
                if (errorResponse != null)
                {
                    return(errorResponse);
                }

                SalesLeadResponse response = this.Process(request) as SalesLeadResponse;
                if (response == null)
                {
                    throw new InvalidCastException("Error ALeadsResponse should cast to SalesLeadResponse.");
                }

                Task.Run(() => this.CreateAndSaveService(request, response, response.Message, Types.Api.AppType.Widget, ApiWebService)).ConfigureAwait(false);

                return(Request.CreateResponse(HttpStatusCode.OK, response));
            }
            catch (Exception ex)
            {
                Global.OutPrint(ex.Message, new SimpleLogger.LocationObject(this, this.EndPoint), SimpleLogger.LogLevelType.CRITICAL);
                return(this.CreateErrorResponse(HttpStatusCode.InternalServerError, "Exception:" + ex.Message, this.EndPoint));
            }
        }
        public HttpResponseMessage SalesLeadRequestAdd(string authToken, SalesLeadRequest request)
        {
            string apiEndPoint = ApiObject.ApiName + ".SalesLeadRequest/POST";

            this.EndPoint = apiEndPoint;
            try
            {
                var startTime = DateTime.Now;

                this.ContentType = this.Request.Content?.Headers?.ContentType?.MediaType;

                HttpResponseMessage errorResponse = this.CommonChecks(request, apiEndPoint);
                if (errorResponse != null)
                {
                    return(errorResponse);
                }

                AuthToken authTokenObject = (!string.IsNullOrEmpty(authToken)) ? new AuthToken(authToken) : null;
                errorResponse = this.Authorize(apiEndPoint, authTokenObject, request.LeadFile?.UserId ?? 0);
                if (errorResponse != null)
                {
                    return(errorResponse);
                }

                //if the ClientId is not set in the 'File' then use the clientId from the posting URL authToken
                if (request.LeadFile.ClientId == 0)
                {
                    request.LeadFile.ClientId = authTokenObject.ClientId;
                }

                //TODO - check client for license...
                //if(!License.Has(LoanPricerAPILicenseType, authTokenObject.ClientId))
                //    return this.CreateErrorResponse(HttpStatusCode.PaymentRequired, "Missing valid license:"+ LoanPricerAPILicenseType.ToString(), apiEndPoint);

                this.CommonProcesses(Request);

                CancellationTokenSource cancelToken = this.StartTimeoutTimer(CommonParams.TimeoutInMill);

                ProcessFileRequest process = new ProcessFileRequest(request.LeadFile, cancelToken);
                Debug.WriteLine("Done. -Status:" + process.Request.StatusType + " -ActionType:" + process.Request.ActionType + " -In Secs:" + (process.Request.EndTime.GetValueOrDefault() - process.Request.StartTime).TotalSeconds);

                SalesLeadResponse response = new SalesLeadResponse();
                response.ExecutionTimeInMillisec  = (DateTime.Now - startTime).TotalMilliseconds;
                response.LoanTekDefinedIdentifier = StringUtilities.UniqueId();
                response.ApiEndPoint = apiEndPoint;
                //response.CachedId = processor.Request.CachedId;
                response.ClientDefinedIdentifier = request.LeadFile.ClientDefinedIdentifier;
                response.PassThroughItems        = request.PassThroughItems;
                if (process.Request == null)
                {
                    response.Status  = StatusType.Error;
                    response.Message = "ProcessFile.Request is missing.";
                }
                else
                {
                    switch (process.Request.StatusType)
                    {
                    case StatusType.Complete: response.Status = StatusType.Complete; break;

                    case StatusType.Cancelled: response.Status = StatusType.Cancelled; break;

                    default:  response.Status = StatusType.Error; break;
                    }
                    response.Message = process.Request.ActionType + "|" + process.Request.Misc.Replace("||", "|");
                }

                Types.Api.AppType appType = (request.LeadFile?.Source?.Name?.ToLower().Contains("widget") ?? false) || (request.LeadFile?.Source?.SubName?.ToLower().Contains("widget") ?? false)
                    ? Types.Api.AppType.Widget
                    : Types.Api.AppType.Api_Clients;
                Task.Run(() => this.CreateAndSaveService(request, response, response.Message, appType, new ApiWebService {
                    WebServiceName = "SalesLeadRequest", EndPoint = this.EndPoint
                })).ConfigureAwait(false);

                return(AApiResponse.CreateResponse(HttpStatusCode.OK, response));
            }
            catch (Exception ex)
            {
                Global.OutPrint(ex.Message, new SimpleLogger.LocationObject(this, apiEndPoint), SimpleLogger.LogLevelType.CRITICAL);
                return(this.CreateErrorResponse(HttpStatusCode.InternalServerError, "Exception:" + ex.Message, apiEndPoint));
            }
        }