public GetJackpotPayoutResponse GetJackpotPayouts(GetJackpotPayoutRequest reqst)
        {
            DateTime kickoff = DateTime.Now;

            XmlConfigurator.Configure(new System.IO.FileInfo(ConfigurationManager.AppSettings["Log4NetConfigPath"]));

            GetJackpotPayoutResponse reply = new GetJackpotPayoutResponse();

            try
            {
                log.Info("GetJackpotPayouts Request. Casino: " + reqst.Casino + ". Start: " + reqst.Start.ToString("yyyy-MM-dd HH:mm") + ". End:" + reqst.End.ToString("yyyy-MM-dd HH:mm") + ". NumberOfLines: " + reqst.NumberOfLines + ".");

                using (SlotsInfoServiceClient service = new SlotsInfoServiceClient(reqst.Casino + "BasicHttpBinding_SlotsInfoService"))
                {
                    svc.GetJackpotPayoutRequest request = new svc.GetJackpotPayoutRequest();
                    request.Start         = reqst.Start;
                    request.End           = reqst.End;
                    request.NumberOfLines = reqst.NumberOfLines;

                    svc.GetJackpotPayoutResponse response = new svc.GetJackpotPayoutResponse();
                    response = service.GetJackpotPayouts(request);

                    reply.Success            = response.Success;
                    reply.JackpotTotal       = response.JackpotTotal;
                    reply.ProgressiveTotal   = response.ProgressiveTotal;
                    reply.CelebrationTotal   = response.CelebrationTotal;
                    reply.MysteryTotal       = response.MysteryTotal;
                    reply.MachineOutMovement = response.MachineOutMovement;

                    foreach (svc.JackpotDetail detail in response.Jackpots)
                    {
                        reply.Jackpots.Add(new JackpotHitDetail()
                        {
                            HitDate     = detail.HitDate,
                            Amount      = detail.Amount,
                            JPotType    = detail.JPotType,
                            SlotMachine = detail.SlotMachine,
                            Description = detail.Description
                        });
                    }
                    foreach (svc.ProcessError detail in response.Errors)
                    {
                        reply.Errors.Add(new ProcessError()
                        {
                            ErrorMessage = detail.ErrorMessage
                        });
                    }
                }

                log.Info("Request fulfilled. (" + executionTime(new TimeSpan(DateTime.Now.Ticks - kickoff.Ticks)) + "ms)");

                reply.Success = true;
                return(reply);
            }
            catch (Exception excp)
            {
                log.Error("\nMessage:\n" + excp.Message + "\nStack Trace:\n" + excp.StackTrace);

                reply.Success = false;

                ProcessError err = new ProcessError();
                err.ErrorMessage = excp.Message;

                reply.Errors.Add(err);
                return(reply);
            }
        }