Ejemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="printer"></param>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        private static async Task <EFI_Fiery_API.FieryLogin.Login> SendLoginRequest(Printer printer, string username, string password)
        {
            EFI_Fiery_API.FieryLogin.Login loginResponse = null;

            Task task = Task.Run(async() =>
            {
                try
                {
                    string url = $"https://{printer.IPAddress}/live/api/v4/login";
                    using (HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, url))
                    {
                        string payload             = new LoginRequest(username, password).ToString();
                        httpRequestMessage.Content = new StringContent(new LoginRequest(username, password).ToString(), System.Text.Encoding.UTF8, MEDIA_TYPE);
                        HttpResponseMessage httpResponseMessage = await HttpClient.SendAsync(httpRequestMessage);
                        loginResponse = JsonConvert.DeserializeObject <EFI_Fiery_API.FieryLogin.Login>(await httpResponseMessage.Content.ReadAsStringAsync());

                        if (httpResponseMessage.IsSuccessStatusCode)
                        {
                            SessionIDCookie         = new Cookie("_session_id", GetSessionID(httpResponseMessage), "/", printer.IPAddress);
                            loginResponse.IsSuccess = true;
                        }
                        else
                        {
                            loginResponse.IsSuccess = false;
                        }
                    }
                }
                catch (Exception ex)
                {
                    loginResponse = new EFI_Fiery_API.FieryLogin.Login()
                    {
                        IsSuccess = false,
                        Error     = new EFI_Fiery_API.FieryLogin.LoginError()
                        {
                            Message = ex.Message
                        }
                    };
                    loginResponse.Error.Errors = new System.Collections.Generic.List <EFI_Fiery_API.FieryLogin.ErrorElement>();
                    foreach (var error in ex.TryGetInnerExceptionsErrors().Select(x => x.Message))
                    {
                        loginResponse.Error.Errors.Add(new EFI_Fiery_API.FieryLogin.ErrorElement()
                        {
                            Message = error
                        });
                    }
                }
            });

            await task;

            return(loginResponse);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Establishes authorized user access to the Fiery API features
 /// </summary>
 /// <param name="ipAddress"></param>
 /// <param name="username"></param>
 /// <param name="password"></param>
 /// <returns></returns>
 public static EFI_Fiery_API.FieryLogin.Login Login(string ipAddress, string username, string password)
 {
     ApplyServerCertificateValidation();
     EFI_Fiery_API.FieryLogin.Login loginResponse = SendLoginRequest(new Printer(ipAddress), username, password).Result;
     return(loginResponse);
 }