public UploaderResponse TestConnection(int storeID, string password)
        {
            var newResponse = new UploaderResponse();
               newResponse.is_error = false;
               try
               {
                    Store current_store = Store.GetStore(storeID);

                    if (current_store == null)
                    {
                         newResponse.is_error = true;
                         newResponse.errorMessage = "NoStore";
                    }
                    else
                    {
                         if (password != current_store.password)
                         {
                              newResponse.is_error = true;
                              newResponse.errorMessage = "IncorrectPassword";
                         }
                    }
               }
               catch (Exception ex)
               {
                    newResponse.is_error = true;
                    newResponse.errorMessage = "GenericError";
                    LogHelper.WriteError(ex.ToString());
               }
               return newResponse;
        }
        public UploaderResponse UploadCustomers(int storeID, string password, string compressedCustomers)
        {
            var newResponse = new UploaderResponse();

               try
               {
                    Store current_store = Store.GetStore(storeID);

                    if (current_store == null)
                    {
                         newResponse.is_error = true;
                         newResponse.errorMessage = "NoStore";
                    }
                    else
                    {
                         if (password != current_store.password)
                         {
                              newResponse.is_error = true;
                              newResponse.errorMessage = "IncorrectPassword";
                         }
                         else
                         {
                              DateTime modifiedDatetime = DateTime.UtcNow;

                              string uncompressedItems = ZipHelper.DecompressFromGzip(compressedCustomers);
                              var jsonSerializer = new JavaScriptSerializer();
                              jsonSerializer.MaxJsonLength = Int32.MaxValue;

                              var customers = jsonSerializer.Deserialize<List<AdProvider.LocalCustomer>>(uncompressedItems);

                              foreach (var customer in customers)
                              {
                                   try
                                   {
                                        RewardsHelper.UpdateCustomerInfo(customer, current_store);
                                   }
                                   catch(Exception ex)
                                   {
                                        LogHelper.WriteError(ex.ToString());
                                   }
                              }
                         }
                    }
               }
               catch (Exception ex)
               {
                    newResponse.is_error = true;
                    newResponse.errorMessage = "GenericError";
                    LogHelper.WriteError(ex.ToString());
               }
               return newResponse;
        }
        public UploaderResponse UploadDockets(int storeID, string password, string compressedDockets)
        {
            var newResponse = new UploaderResponse();

               try
               {
                    Store current_store = Store.GetStore(storeID);

                    if (current_store == null)
                    {
                         newResponse.is_error = true;
                         newResponse.errorMessage = "NoStore";
                    }
                    else
                    {
                         if (password != current_store.password)
                         {
                              newResponse.is_error = true;
                              newResponse.errorMessage = "IncorrectPassword";
                         }
                         else
                         {
                              string uncompressedItems = ZipHelper.DecompressFromGzip(compressedDockets);
                              var jsonSerializer = new JavaScriptSerializer();
                              jsonSerializer.MaxJsonLength = Int32.MaxValue;

                              var dockets = jsonSerializer.Deserialize<List<AdProvider.LocalDocket>>(uncompressedItems);

                              foreach (var docket in dockets)
                              {
                                   try
                                   {
                                        insertNonRewardsDocket(docket, current_store);
                                   }
                                   catch (Exception ex)
                                   {
                                        LogHelper.WriteError(ex.ToString());
                                   }
                              }
                         }
                    }
               }
               catch (Exception ex)
               {
                    newResponse.is_error = true;
                    newResponse.errorMessage = "GenericError";
                    LogHelper.WriteError(ex.ToString());
               }
               return newResponse;
        }
        public UploaderResponse UploadDocket(int storeID, string password, AdProvider.LocalDocket localDocket)
        {
            var newResponse = new UploaderResponse();

               try
               {
                    Store current_store = Store.GetStore(storeID);

                    if (current_store == null)
                    {
                         newResponse.is_error = true;
                         newResponse.errorMessage = "NoStore";
                    }
                    else
                    {
                         if (password != current_store.password)
                         {
                              newResponse.is_error = true;
                              newResponse.errorMessage = "IncorrectPassword";
                         }
                         else
                         {
                              try
                              {
                                   insertNonRewardsDocket(localDocket, current_store);
                              }
                              catch (Exception ex)
                              {
                                   LogHelper.WriteError(ex.ToString());
                              }

                         }
                    }
               }
               catch (Exception ex)
               {
                    newResponse.is_error = true;
                    newResponse.errorMessage = "GenericError";
                    LogHelper.WriteError(ex.ToString());
               }
               return newResponse;
        }