public Task <ScanStoreEvent> CodeLineDataPutAsync(CodeLineScanEvent e)
        {
            log.DebugFormat("Put CodeLineData into store async [{0}]", e);
            Task <ScanStoreEvent> task = Task.Factory.StartNew <ScanStoreEvent>(() =>
            {
                ScanStoreEvent scanStoreEvent;
                using (LogProvider.OpenNestedContext("Task_CodeLineDataPut"))
                {
                    log.Info("Putting scan in cloud");
                    try
                    {
                        ScanStoreRestImpl service = new ScanStoreRestImpl(_configFileName, e);
                        log.Debug("Begin call CodeLineDataPut web service");
                        String response = service.CodeLineDataPut(e);
                        log.Debug("End call CodeLineDataPut web service");
                        scanStoreEvent = new ScanStoreEvent(response);
                    }
                    catch (Exception ex)
                    {
                        log.ErrorFormat("Exception while putting scan into cloud [{0}]", ex.Message);
                        scanStoreEvent = new ScanStoreEvent(ex);
                    }
                    NotifyListeners(scanStoreEvent);
                }
                return(scanStoreEvent);
            });

            return(task);
        }
Example #2
0
        public static bool IsConfigurationEvent(CodeLineScanEvent e)
        {
            MMM.Readers.CodelineData data = e.CodeLineData;
            bool result = (data.CodelineValidationResult == MMM.Readers.CheckDigitResult.CDR_Valid) &&
                          data.Line1.StartsWith("PZXXX");

            return(result);
        }
Example #3
0
 public String CodeLineDataPut(CodeLineScanEvent e)
 {
     if (string.IsNullOrWhiteSpace(Settings.ProtocolVersion))
     {
         return(CodeLineDataPutV1(e));
     }
     else
     {
         return(CodeLineDataPutV2(e));
     }
 }
Example #4
0
 public ScanStoreRestImpl(String configFileName, CodeLineScanEvent e)
 {
     try
     {
         CreateScanStoreConfigFileIfNecessary(configFileName, e);
         string text = System.IO.File.ReadAllText(configFileName);
         Settings = Newtonsoft.Json.JsonConvert.DeserializeObject <ScanStoreConfig>(text);
     }
     catch (FileNotFoundException ex)
     {
         throw new ConfigNotFoundException(ex);
     }
 }
 public void HandleCodeLineScan(object sender, CodeLineScanEvent e)
 {
     try
     {
         ScanStoreApi service  = new ScanStoreApi(_configFileName);
         String       response = service.CodeLineDataPut(e.CodeLineData);
         OnScanSinkEvent(this, new ScanSinkEvent(response));
     }
     catch (Exception ex)
     {
         OnScanSinkEvent(this, new ScanSinkEvent(ex));
     }
 }
Example #6
0
        private String CodeLineDataPutV2(CodeLineScanEvent e)
        {
            var codeLineData = e.CodeLineData;
            var request      = new RestRequest(Method.POST);
            Dictionary <string, object> parameters = new Dictionary <string, object>();

            request.AddJsonBody(new Dictionary <string, object>()
            {
                { "clientId", Settings.ClientId },
                { "accessKey", Settings.AccessKey },
                { "codeLineData", codeLineData }
            });
            return(Execute <VOID>(request));
        }
Example #7
0
 public void HandleCodeLineScan(object sender, CodeLineScanEvent e)
 {
     Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(e));
     if (OnScanSinkEvent != null)
     {
         try
         {
             OnScanSinkEvent(this, new ScanSinkEvent("Scan delivered to console"));
         }
         catch
         {
         }
     }
 }
Example #8
0
 private void CreateScanStoreConfigFileIfNecessary(String configFileName, CodeLineScanEvent e)
 {
     if (!System.IO.File.Exists(configFileName) && Utils.IsConfigurationEvent(e))
     {
         var             configData = Utils.ConfigurationData(e);
         var             longUrl    = configData.RetrieveLongUrl();
         ScanStoreConfig settings   = new ScanStoreConfig()
         {
             ClientId        = configData.ClientId,
             AccessKey       = configData.AccessKey,
             BaseUrl         = longUrl,
             ProtocolVersion = configData.ProtocolVersion
         };
         settings.Write(configFileName);
     }
 }
Example #9
0
 public static MrzBasedConfigurationData ConfigurationData(CodeLineScanEvent e)
 {
     MMM.Readers.CodelineData data = e.CodeLineData;
     return(new MrzBasedConfigurationData(data.Line1, data.Line2));
 }