private static MetadataApiClientResponse getMetadataClient(MetadataApiClientRequest request)
        {
            ConsoleHelper.WriteWarningLine("Try login in your organization:");
            PartnerLoginRequest  requestPattern  = PartnerApiService.createPartnerLoginRequest(request);
            PartnerLoginResponse responsePartner = PartnerApiService.login(requestPattern);

            ConsoleHelper.WriteDoneLine("OK! We Can Enter!");
            return(MetadataApiClientService.getMetadataClient(responsePartner.UserId, responsePartner.SessionId, responsePartner.ServerUrl));
        }
        public PartnerLoginResponse PartnerLogin(PartnerLoginRequest request)
        {
            var logger = _container.GetInstance <ILogger>();
            var enc    = _container.GetInstance <IEncryptionService>();
            var output = new PartnerLoginResponse();

            try
            {
                using (var client = new WebClient())
                {
                    // Form together our request object.
                    var url = $"{ROOT_URL_HTTPS}{PARTNER_LOGIN_METHOD}";
                    var obj = new JObject();
                    obj.Add("username", new JValue(request.UserName));
                    obj.Add("password", new JValue(request.Password));
                    obj.Add("deviceModel", new JValue(request.DeviceModel));
                    obj.Add("version", new JValue("5"));
                    var objstring = obj.ToString(Newtonsoft.Json.Formatting.None);

                    // POST the value off to the server.
                    output.RequestSyncTime = GetNowSeconds();
                    var json = client.UploadString(url, objstring);

                    // Parse the results.
                    var token = JObject.Parse(json);
                    output.Successful       = (string)token.SelectToken("stat") == "ok";
                    output.PartnerAuthToken = (string)token.SelectToken("result.partnerAuthToken");
                    output.PartnerId        = (string)token.SelectToken("result.partnerId");
                    var time    = (string)token.SelectToken("result.syncTime");
                    var dectime = enc.Decrypt(time, request.DecryptionKey);
                    output.ResponseSyncTime = int.Parse(Regex.Match(dectime.Substring(4), "^[0-9]*").Groups[0].Value);
                }
            }
            catch (Exception ex)
            {
                logger.LogMessage($"ERROR (HttpPandoraService,PartnerLogin): {ex.Message}");
                output.Successful = false;
            }

            return(output);
        }
Example #3
0
 public static void SetPartnerSession(this Controller controller, PartnerLoginResponse data)
 {
     controller.HttpContext.Session.Set("PartnerLogin", data);
 }