Inheritance: MonoBehaviour
        public ActionResult TicketsSold(int?id, string selectedSeats)
        {
            var viewModel = new TicketsSoldViewModel();

            try
            {
                if (!string.IsNullOrWhiteSpace(selectedSeats))
                {
                    var session = SessionManager.GetAvailableSessions().Where(s => s.Id == id).FirstOrDefault();

                    var seatLocators = GetSeatLocators(selectedSeats);

                    foreach (var seatLocator in seatLocators)
                    {
                        var seat = SeatManager.GetSeat(session, seatLocator.Item1, seatLocator.Item2);
                        viewModel.Tickets.Add(TicketManager.SellTicket(seat));
                    }
                }
                else
                {
                    viewModel.Errors.Add(Messages.SeatsNotFound);
                }
            }
            catch (Exception ex)
            {
                viewModel.Errors.Add(ex.Message);
            }

            if (viewModel.Errors.Count() <= 0)
            {
                DataContext.SaveChanges();
            }

            return(View(viewModel));
        }
        /// <summary>Raises the load event.</summary>
        /// <param name="e">
        /// The <see cref="T:System.EventArgs" /> instance containing the event data.
        /// </param>
        /// <contract>
        ///   <requires name="e" condition="not null" />
        /// </contract>
        protected override void OnLoad(EventArgs e)
        {
            Assert.ArgumentNotNull((object)e, "e");
            base.OnLoad(e);
            Dictionary <string, string> settings = new Dictionary <string, string>();

            this.UploadID        = Guid.NewGuid().ToString();
            settings["uploadID"] = this.UploadID;
            if (UIUtil.IsFirefox() || UIUtil.IsWebkit())
            {
                string sessionId = HttpContext.Current.Session.SessionID;
                Assert.IsNotNullOrEmpty(sessionId, "session id");
                settings["uploadSessionID"]  = sessionId;
                settings["uploadSessionID1"] = TicketManager.GetCurrentTicketId();
            }
            this.Versioned.Checked = Settings.Media.UploadAsVersionableByDefault;
            this.AsFiles.Visible   = !Settings.Media.DisableFileMedia;
            this.AsFiles.Checked   = Settings.Media.UploadAsFiles;
            if (!Settings.Upload.UserSelectableDestination)
            {
                this.AsFiles.Visible = false;
            }
            settings["uploadLimit"]             = !this.AsFiles.Checked ? Math.Min(Settings.Media.MaxSizeInDatabase, Settings.Runtime.EffectiveMaxRequestLengthBytes).ToString() : Settings.Runtime.EffectiveMaxRequestLengthBytes.ToString();
            settings["uploadFileLimit"]         = Settings.Runtime.EffectiveMaxRequestLengthBytes.ToString();
            settings["uploadingAsFilesMessage"] = Translate.Text("At least one of the files is too large to be uploaded to the database.");

            settings["uploadImageLimit"] = Sitecore.Configuration.Settings.GetSetting("Media.MaxImageSizeInDatabase");

            this.RenderSettings(settings);
        }
        static void Main(string[] args)
        {
            var orderRepo       = new OrderRepository();
            var innerDispatcher = new MessageDispatcher();
            var dispatcher      = new LoggingMessageDispatcher(innerDispatcher);

            var entryPoint     = new AppEntryPoint(dispatcher);
            var orderProcessor = new OrderProcessor(dispatcher);
            var ticketManager  = new TicketManager(dispatcher, orderRepo, 500);
            var feeManager     = new BasicFeeManager(dispatcher);
            var taxManager     = new TaxManager(dispatcher);
            var paymentManager = new PaymentManager(dispatcher);
            var storageManager = new StorageManager(dispatcher, orderRepo);

            dispatcher.Subscribe <OrderPlaced>(orderProcessor);
            dispatcher.Subscribe <TicketsReserved>(orderProcessor);
            dispatcher.Subscribe <FeesCalculated>(orderProcessor);
            dispatcher.Subscribe <TaxesCalculated>(orderProcessor);
            dispatcher.Subscribe <CreditCardCharged>(orderProcessor);

            dispatcher.Subscribe(ticketManager);
            dispatcher.Subscribe(feeManager);
            dispatcher.Subscribe(taxManager);
            dispatcher.Subscribe(paymentManager);
            dispatcher.Subscribe(storageManager);
            dispatcher.Subscribe(entryPoint);

            entryPoint.TakeOrder(4, 50M, "1234-1234-1234-1223");

            System.Console.ReadKey();
        }
Exemple #4
0
 internal FMessage(WhatsAppApi.Account.WhatsUser remote_user, bool from_me)
 {
     this.status     = Status.Undefined;
     this.gap_behind = true;
     this.User       = remote_user;
     this.key        = new Key(remote_user.GetFullJid(), from_me, TicketManager.GenerateId());
 }
        public void AddHardwareTicket_WithValidTicket_ReturnsAddedTicket()
        {
            // arrange
            int    accountid = 1;
            string problem   = "Ticket text";
            string device    = "PC-1";
            int    ticketId  = 1;         // will be added in repo

            var repo = new Mock <ITicketRepository>();

            repo
            .Setup(x => x.CreateTicket(It.IsAny <Ticket>()))
            .Returns((Ticket t) =>
            {
                t.TicketNumber = ticketId;
                return(t);
            });
            var mgr = new TicketManager(repo.Object);

            // act
            var result = mgr.AddTicket(accountid, device, problem);

            // assert
            Assert.Equal(ticketId, result.TicketNumber);
        }
        private void InitializeDeliveryTickets()
        {
            IEnumerable <Ticket> openTickets = TicketManager.GetOpenTickets();

            foreach (Ticket ticket in openTickets)
            {
                if (ticket.Type != TicketType.Delivery)
                {
                    continue;
                }
                Person customerPerson =
                    PersonManager.GetPersonByCustomerId(ticket.CustomerId);
                ZipCode      zipCode      = ZipCode.Get(customerPerson.ZipCodeId);
                ZipCodeCity  zipCodeCity  = ZipCodeCity.Get(zipCode.CityId);
                ZipCodeState zipCodeState = ZipCodeState.Get(zipCodeCity.StateId);
                listBoxDeliveries.Items.Add(
                    new FormattedListBoxItem(0, ((ticket.OrderId != null) ?
                                                 Types.Strings.OrderNumber + ticket.OrderId.Value + ", " : "") +
                                             Types.Strings.TicketNumber + ticket.PrimaryKey.Id + Environment.NewLine +
                                             Environment.NewLine +
                                             customerPerson.FirstName + " " + customerPerson.LastName +
                                             Environment.NewLine + customerPerson.AddressLine1 +
                                             (string.IsNullOrEmpty(customerPerson.AddressLine2) ? "" :
                                              Environment.NewLine + customerPerson.AddressLine2) +
                                             Environment.NewLine + zipCodeCity.City + ", " +
                                             zipCodeState.Abbreviation + " " + zipCode.PostalCode.ToString("D5"), true));
            }
        }
Exemple #7
0
        public ActionResult EditTicket(int id)
        {
            TicketManager     TM  = new TicketManager();
            TicketProfileView TPV = TM.GetTicketProfile(id);

            return(View(TPV));
        }
Exemple #8
0
        public static void EndOfDay()
        {
            if (TicketManager.GetOpenTickets().Any())
            {
                PosDialogWindow.ShowDialog(
                    Types.Strings.YouCanNotRunTheEndofdayReportUntilAllOpenTicketsAreClosedout,
                    Types.Strings.EndofdayReport, DialogButtons.Ok);
                return;
            }
            if (RegisterManager.OpenRegisterExists)
            {
                PosDialogWindow.ShowDialog(
                    Types.Strings.YouCanNotRunTheEndofdayReportUntilYouCloseoutAllActiveRegisterDrawers,
                    Types.Strings.EndofdayReport, DialogButtons.Ok);
                return;
            }
            DialogButton dialogButton = PosDialogWindow.ShowDialog(
                Types.Strings.TheEndOfDayReportShouldOnlyBeRunAtTheEndOfTheDay +
                Types.Strings.AreYouSureYouWantToRunThisReport, Types.Strings.Confirmation, DialogButtons.YesNo);

            if (dialogButton == DialogButton.Yes)
            {
                PrintEndOfDay(MainWindow.Singleton);
            }
        }
        private void AddTicket()
        {
#if DEMO
            IEnumerable <Ticket> tickets = TicketManager.GetPartyTickets(ParentTicket.PartyId);
            int count = tickets.Count <Ticket>();
            if (count >= 2)
            {
                PosDialogWindow.ShowDialog(Window.GetWindow(this),
                                           Types.Strings.YouCanOnlyHave2PartyTicketsInTheDemoVersion,
                                           Types.Strings.DemoRestriction);
                return;
            }
#endif
            // Create a new ticket with the same data as the current ticket
            Ticket newTicket = TicketManager.Add(OriginalTicket.Type,
                                                 OriginalTicket.PartyId, OriginalTicket.SeatingId,
                                                 OriginalTicket.EmployeeId, OriginalTicket.CustomerId);

            newTicket.SetStartTime(OriginalTicket.StartTime);
            newTicket.SetPrepareTime(OriginalTicket.PrepareTime);
            newTicket.SetReadyTime(OriginalTicket.ReadyTime);
            newTicket.Update();

            string text = Types.Strings.Ticket + ": " + newTicket.PrimaryKey.Id;
            // Add the new ticket to the source list
            listboxSourceTicket.Items.Add(
                new FormattedListBoxItem(newTicket.PrimaryKey, text, true));

            if ((receiptTape.SelectedItems != null) && (receiptTape.SelectedItems.Count > 0))
            {
                //listBoxDestinationTicket.Items.Add(new FormattedListBoxItem(newTicket.Id, text, 280));
                PopulateDestinationList();
            }
        }
        public void TicketManager_CancelTicket_ClosedSession()
        {
            //Arrange
            var seatManager  = Mock.Of <ISeatManager>();
            var priceManager = Mock.Of <IPriceManager>();
            var dataContext  = Mock.Of <IDataContext>();

            var session = new Session()
            {
                TimeAndDate = new DateTime(2014, 10, 26)
            };

            session.Close();
            var seat = new Seat()
            {
                Row = Session.NUMBER_OF_ROWS, SeatNumber = Session.NUMBER_OF_SEATS, Session = session, Reserved = true
            };
            var ticket = new Ticket()
            {
                Price = 7, Seat = seat, TimeAndDate = DateTime.Now
            };

            var target = new TicketManager(seatManager, priceManager, dataContext);

            //Act
            Action action = () => { target.CancelTicket(ticket); };

            //Assert
            action.ShouldThrow <CinematicException>().WithMessage(Messages.SessionIsClosedCannotReturnTickets);
        }
        public void TicketManager_SellTicket_CancelledSession()
        {
            //Arrange
            var seatManager  = Mock.Of <ISeatManager>();
            var priceManager = Mock.Of <IPriceManager>();
            var dataContext  = Mock.Of <IDataContext>();

            var session = new Session()
            {
                TimeAndDate = new DateTime(2014, 10, 26)
            };

            session.Cancel();
            var seat = new Seat()
            {
                Row = Session.NUMBER_OF_ROWS, SeatNumber = Session.NUMBER_OF_SEATS, Session = session, Reserved = false
            };
            var target = new TicketManager(seatManager, priceManager, dataContext);

            //Act
            Action action = () => { var result = target.SellTicket(seat); };

            //Assert
            action.ShouldThrow <CinematicException>().WithMessage(Messages.SessionIsCancelledNoTicketsAvailable);
        }
Exemple #12
0
        public async Task <IActionResult> SubmitTicket(NewTicketRequest req)
        {
            TicketDAO            ticketDAO            = new TicketDAO(Constants.SQLConnection);
            TicketService        ticketService        = new TicketService(ticketDAO);
            AuthorizationService authorizationService = new AuthorizationService();
            UserDAO              userDAO              = new UserDAO(Constants.SQLConnection);
            SessionService       sessionService       = new SessionService(userDAO, authorizationService);
            AuthorizationManager authorizationManager = new AuthorizationManager(authorizationService, sessionService);
            TicketManager        ticketManager        = new TicketManager(ticketService, authorizationManager);

            // Make sure we sent a correct category
            Constants.TicketCategories category;
            try
            {
                category = (Constants.TicketCategories)Enum.Parse(typeof(Constants.TicketCategories), req.category);
            }
            catch
            {
                return(BadRequest(Constants.TicketImproperCategory));
            }

            Result <bool> success = await ticketManager.SubmitTicket(category, req.description);

            return(Ok(success));
        }
Exemple #13
0
        public async Task <IActionResult> GetTicketsAsync(TicketSearchRequest req)
        {
            StringValues jwtToken;

            try
            {
                Request.Headers.TryGetValue(Constants.JWTTokenHeader, out jwtToken);
            }
            catch
            {
                // Forbidden
                return(Forbid(Constants.UnauthorizedRequest));
            }

            TicketDAO            ticketDAO            = new TicketDAO(Constants.SQLConnection);
            TicketService        ticketService        = new TicketService(ticketDAO);
            AuthorizationService authorizationService = new AuthorizationService();
            UserDAO              userDAO              = new UserDAO(Constants.SQLConnection);
            SessionService       sessionService       = new SessionService(userDAO, authorizationService);
            AuthorizationManager authorizationManager = new AuthorizationManager(authorizationService, sessionService);
            TicketManager        ticketManager        = new TicketManager(ticketService, authorizationManager);

            Result <List <TicketRecord> > tickets = await ticketManager.GetTicketsAsync(jwtToken, req.filterParams);

            return(Ok(tickets));
        }
Exemple #14
0
        /***********************************************************************************************************/


        #region ----- Public Delegate ------


        #endregion ----- Public Delegate ------


        /***********************************************************************************************************/


        #region ----- Public Publish Event ------


        #endregion ----- Public Publish Event ------


        /***********************************************************************************************************/


        #region ----- Constructor ------


        public ComaToolControl(GameManager gameManager)
        {
            InitializeComponent();
            _gameManager   = gameManager;
            _ticketManager = _gameManager.GetTicketManager();
            _ticketManager.NotifyLoggedOut += new TicketManager.NotifyLoggedOutEventHandler(_ticketManager_NotifyLoggedOut);
        }
    public static string GenerateId()
    {
        if (_instance == null)
            _instance = new TicketManager();

        return (IdBase + "-" + TicketCounter.NextTicket());
    }
        private void RemoveTicket()
        {
            if (!LockCheckPass(true, false, Types.Strings.TheSelectedTicketCanNotBeRemovedBecauseItAlreadyOpenedSomewhereElse))
            {
                return;
            }

            FormattedListBoxItem selected =
                (FormattedListBoxItem)listboxSourceTicket.SelectedItem;

            if (selected == null)
            {
                return;
            }
            if (TicketItem.GetAll(selected.ReferenceObject as YearId).Any())
            {
                // Remove the ticket
                TicketManager.Delete(selected.ReferenceObject as YearId);
                listboxSourceTicket.Items.Remove(listboxSourceTicket.SelectedItem);
            }
            else
            {
                PosDialogWindow.ShowDialog(
                    Types.Strings.YouCanNotRemoveATicketThatHasItemsOnItFirstTransferThoseItemsToADifferentTicket, Types.Strings.TicketNotEmpty);
            }
        }
        private void ProcessSelectionChange()
        {
            listBoxDestinationTicket.Items.Clear();
            receiptTape.Items.Clear();
            if (!LockCheckPass(true, false, Types.Strings.ThisTicketIsOpenSomewhereElseItCanNotBeModified))
            {
                buttonChangeSeating.IsEnabled         =
                    buttonRemoveTicket.IsEnabled      =
                        buttonUnselect.IsEnabled      =
                            buttonSelectAll.IsEnabled = false;
                return;
            }
            YearId primaryKeyTicket = InitializeReceiptTape(null);

            if (primaryKeyTicket == null)
            {
                return;
                //throw new WtfException();
            }

            SetupButtons();

            if ((CurrentTicket == null) || !CurrentTicket.PrimaryKey.Equals(primaryKeyTicket))
            {
                CurrentTicket = TicketManager.GetTicket(primaryKeyTicket);
            }
        }
Exemple #18
0
        /// <summary>
        /// Raises the <see cref="E:System.Web.UI.Control.Load"></see> event.
        /// </summary>
        /// <param name="e">
        /// The <see cref="T:System.EventArgs"></see> object that contains the event data.
        /// </param>
        protected override void OnLoad(EventArgs e)
        {
            Assert.ArgumentNotNull((object)e, "e");
            base.OnLoad(e);
            if (XamlControl.AjaxScriptManager.IsEvent)
            {
                return;
            }
            Button descendantControl = this.FindDescendantControl("OK") as Button;

            if (descendantControl != null)
            {
                this.Text = Translate.Text("Click Browse to select the file that you want to upload.");
                descendantControl.Visible = false;
            }
            this.UploadID            = Guid.NewGuid().ToString();
            this.InputUploadID.Value = this.UploadID;
            if (!UIUtil.IsFirefox() && !UIUtil.IsWebkit())
            {
                return;
            }
            string sessionId = this.Context.Session.SessionID;

            Assert.IsNotNullOrEmpty(sessionId, "session id");
            this.UploadSessionID.Value  = sessionId;
            this.UploadSessionID1.Value = TicketManager.GetCurrentTicketId();

            this.uploadImageLimit.Value = Sitecore.Configuration.Settings.GetSetting("Media.MaxImageSizeInDatabase");
        }
        public void TestEverything()
        {
            var innerDispatcher = new MessageDispatcher();
            var dispatcher      = new LoggingMessageDispatcher(innerDispatcher);
            var orderRepo       = new OrderRepository();

            var entryPoint = new AppEntryPoint(dispatcher);
            var order      = new Order {
                TicketCount = 4, Subtotal = 100M
            };
            var orderProcessor = new OrderProcessor(dispatcher);
            var ticketManager  = new TicketManager(dispatcher, orderRepo, 500);
            var feeManager     = new BasicFeeManager(dispatcher);
            var taxManager     = new TaxManager(dispatcher);
            var paymentManager = new PaymentManager(dispatcher);
            var storageManager = new StorageManager(dispatcher, orderRepo);

            dispatcher.Subscribe <OrderPlaced>(orderProcessor);
            dispatcher.Subscribe <TicketsReserved>(orderProcessor);
            dispatcher.Subscribe <FeesCalculated>(orderProcessor);
            dispatcher.Subscribe <TaxesCalculated>(orderProcessor);
            dispatcher.Subscribe <CreditCardCharged>(orderProcessor);
            dispatcher.Subscribe(ticketManager);
            dispatcher.Subscribe(feeManager);
            dispatcher.Subscribe(taxManager);
            dispatcher.Subscribe(paymentManager);
            dispatcher.Subscribe(storageManager);

            entryPoint.TakeOrder(4, 50M, "1234-1234-1234-1223");
        }
Exemple #20
0
        public async Task <ActionResult> MyEvents()
        {
            var viewModel = new List <MyEventsViewModel>();

            var user      = TickMeHelpers.User.FromUser(User);
            var savedUser = await UserManager.GetUserByAuthId(user);

            var tickets = await TicketManager.GetUserTickets(savedUser.Id);

            foreach (var ticket in tickets)
            {
                var evnt = await EventManager.Get(ticket.EventId);

                dynamic pdata = JObject.Parse(JsonConvert.DeserializeObject <PaymentData>(ticket.PaymentData).TransactionData);
                var     item  = new MyEventsViewModel
                {
                    Ticket      = ticket,
                    EventName   = evnt.Title,
                    StartMoment = evnt.StartMoment,
                    Duration    = evnt.Duration,
                    PaymentDate = pdata.TransactionDate
                };
                viewModel.Add(item);
            }
            return(View("~/Views/Events/MyEvents.cshtml", viewModel));
        }
Exemple #21
0
 public ComaToolLogin(GameManager gameManager, ComaToolControl comaToolControl)
 {
     InitializeComponent();
     _gameManager     = gameManager;
     _ticketManager   = _gameManager.GetTicketManager();
     _comaToolControl = comaToolControl;
 }
        public void SetupProgram()
        {
            // this is the "bootstrap" method, you could say.... ;)

            // create the DBManager static helper, and let it create the SQLite connection.
            DBManager.CreateConnection();

            // create menu controller, which holds a list of other controllers to generate menu.
            menuController = new MainMenuController();
            //add a reference to that controller to the static helper MenuHolder function.
            MenuHolder.SetMenuController(menuController);

            // create the login controller screen
            loginController = new LoginController();
            menuController.AddController(loginController);

            // create the table manager (loads tables from DB upon creation)
            tableManager = new TableManager();

            // create the item manager (loads items from DB upon creation)
            itemManager = new ItemManager();

            // create the TicketManager before creating the ticket controllers, so we can pass that in via reference
            ticketManager = new TicketManager();

            // create the order controller screen
            orderController = new OrderController(tableManager, itemManager, ticketManager);
            menuController.AddController(orderController);

            kitchenTicketController = new KitchenTicketController(ticketManager);
            menuController.AddController(kitchenTicketController);

            barTicketController = new BarTicketController(ticketManager);
            menuController.AddController(barTicketController);

            // create the item manager, and then the item view controller. Pass manager into controller.

            itemController = new ItemController(itemManager);
            menuController.AddController(itemController);

            // create the sales view controller, and add it to menu
            salesController = new SalesController();
            menuController.AddController(salesController);

            reservationController = new ReservationController(orderController);
            menuController.AddController(reservationController);

            // now we have all the mvc controllers created, create the "managers" for the data models.
            // each constructor should have a call to the DB helper class, to load it's data.

            customerManager = new CustomerManager();



            // load the contents from the

            // go to the login/auth page
            loginController.Show();
        }
Exemple #23
0
        public void SendStatusUpdate(string status)
        {
            string   id          = TicketManager.GenerateId();
            FMessage message     = new FMessage(new FMessage.FMessageIdentifierKey("s.us", true, id));
            var      messageNode = GetMessageNode(message, new ProtocolTreeNode("body", null, WhatsApp.SYSEncoding.GetBytes(status)));

            this.SendNode(messageNode);
        }
        /// <summary>
        /// Send a status update
        /// </summary>
        /// <param name="status">The status</param>
        /// <param name="onSuccess">Action to execute when the request was successful</param>
        /// <param name="onError">Action to execute when the request failed</param>
        public void SendStatusUpdate(string status, Action onComplete, Action <int> onError)
        {
            string   id          = TicketManager.GenerateId();
            FMessage message     = new FMessage(new FMessage.FMessageIdentifierKey("s.us", true, id));
            var      messageNode = GetMessageNode(message, new ProtocolTreeNode("body", null, WhatsApp.SYSEncoding.GetBytes(status)));

            this.whatsNetwork.SendData(this._binWriter.Write(messageNode));
        }
 public OrderController(TableManager tableman, ItemManager itemMan, TicketManager ticketMan)
 {
     CreateView();
     orders        = new List <Order>();
     tableManager  = tableman;
     itemManager   = itemMan;
     ticketManager = ticketMan;
 }
Exemple #26
0
 public TicketManagerTests()
 {
     _mockProjectRepo  = new Mock <IProjectRepository>();
     _mockTicketRepo   = new Mock <ITicketRepository>();
     _mockVideoManager = new Mock <IVideoManager>();
     _sut = new TicketManager(Mock.Of <ILogger <TicketManager> >(), _mockProjectRepo.Object,
                              _mockTicketRepo.Object, _mockVideoManager.Object);
 }
Exemple #27
0
        private static bool TryRelogin()
        {
            string currentTicketId = TicketManager.GetCurrentTicketId();

            return(!string.IsNullOrEmpty(currentTicketId) &&
                   TicketManager.IsTicketValid(currentTicketId) &&
                   TicketManager.Relogin(currentTicketId));
        }
        public void AutoBuyChaseTicket(string gameName, string issueNumber)
        {
            TicketManager       ticketManager = new TicketManager(DbAccess);
            UserManager         userManager   = new UserManager(DbAccess);
            IList <ChaseEntity> chaseList     = ticketManager.GetChaseListByIssue(gameName, issueNumber, (int)ChaseStatus.Chasing);

            foreach (ChaseEntity chase in chaseList)
            {
                try
                {
                    UserFacade userFacade = new UserFacade();
                    UserInfo   user       = userFacade.GetUserInfo(chase.UserId);
                    if (user == null)
                    {
                        throw new Exception("用户不存在 - " + chase.UserId);
                    }
                    UserBalanceEntity balance = userManager.GetBalance(chase.UserId);
                    if (balance == null)
                    {
                        throw new Exception("用户帐户不存在 - " + chase.UserId);
                    }
                    TicketEntity ticket = ticketManager.GetTicket(chase.TicketId);
                    if (ticket == null)
                    {
                        throw new Exception("追号的票不存在 - " + chase.TicketId);
                    }
                    IList <TicketAnteCodeEntity> anteCodeList = ticketManager.GetAnteCodeListByTicket(chase.TicketId);
                    List <string> codes = new List <string>();
                    foreach (TicketAnteCodeEntity anteCodeEntity in anteCodeList)
                    {
                        codes.Add(anteCodeEntity.AnteCode);
                    }
                    balance.Freeze -= chase.Money;
                    userManager.ModifyBalance(balance);
                    HPResponseInfo response = DoBuy(user, gameName, issueNumber, (BuyType)ticket.BuyType, codes, chase.Money, chase.Amount);
                    if (response.Code == "0000")
                    {
                        chase.Status = (int)ChaseStatus.Finished;
                    }
                    else
                    {
                        chase.Status = (int)ChaseStatus.Error;
                    }
                    chase.ResponseCode    = response.Code;
                    chase.ResponseMessage = response.Message;
                    ticketManager.ModifyChaseStatus(chase);
                }
                catch (Exception ex)
                {
                    chase.Status          = (int)ChaseStatus.Error;
                    chase.ResponseCode    = "9999";
                    chase.ResponseMessage = "未知异常 - " + ex.Message;
                    ticketManager.ModifyChaseStatus(chase);

                    HandleException(LogCategory.Ticket, "自动认购追号失败!", ex, chase);
                }
            }
        }
        public void AutoBuyChaseTicket(string gameName, string issueNumber)
        {
            TicketManager ticketManager = new TicketManager(DbAccess);
            UserManager userManager = new UserManager(DbAccess);
            IList<ChaseEntity> chaseList = ticketManager.GetChaseListByIssue(gameName, issueNumber, (int)ChaseStatus.Chasing);
            foreach (ChaseEntity chase in chaseList)
            {
                try
                {
                    UserFacade userFacade = new UserFacade();
                    UserInfo user = userFacade.GetUserInfo(chase.UserId);
                    if (user == null)
                    {
                        throw new Exception("用户不存在 - " + chase.UserId);
                    }
                    UserBalanceEntity balance = userManager.GetBalance(chase.UserId);
                    if (balance == null)
                    {
                        throw new Exception("用户帐户不存在 - " + chase.UserId);
                    }
                    TicketEntity ticket = ticketManager.GetTicket(chase.TicketId);
                    if (ticket == null)
                    {
                        throw new Exception("追号的票不存在 - " + chase.TicketId);
                    }
                    IList<TicketAnteCodeEntity> anteCodeList = ticketManager.GetAnteCodeListByTicket(chase.TicketId);
                    List<string> codes = new List<string>();
                    foreach (TicketAnteCodeEntity anteCodeEntity in anteCodeList)
                    {
                        codes.Add(anteCodeEntity.AnteCode);
                    }
                    balance.Freeze -= chase.Money;
                    userManager.ModifyBalance(balance);
                    HPResponseInfo response = DoBuy(user, gameName, issueNumber, (BuyType)ticket.BuyType, codes, chase.Money, chase.Amount);
                    if (response.Code == "0000")
                    {
                        chase.Status = (int)ChaseStatus.Finished;
                    }
                    else
                    {
                        chase.Status = (int)ChaseStatus.Error;
                    }
                    chase.ResponseCode = response.Code;
                    chase.ResponseMessage = response.Message;
                    ticketManager.ModifyChaseStatus(chase);
                }
                catch (Exception ex)
                {
                    chase.Status = (int)ChaseStatus.Error;
                    chase.ResponseCode = "9999";
                    chase.ResponseMessage = "未知异常 - " + ex.Message;
                    ticketManager.ModifyChaseStatus(chase);

                    HandleException(LogCategory.Ticket, "自动认购追号失败!", ex, chase);
                }
            }
        }
Exemple #30
0
        public void PartOne()
        {
            var input = Helpers.FileHelper.ParseFile(InputFile);

            var manager = new TicketManager(input);
            int error   = manager.GetScanningErrorRate();

            Assert.IsTrue(error == 29759);
        }
Exemple #31
0
        /// <summary>
        /// Send a message to a person
        /// </summary>
        /// <param name="to">The phone number to send</param>
        /// <param name="txt">The text that needs to be send</param>
        public void Message(string to, string txt)
        {
            var tmpMessage = new FMessage(this.GetJID(to), true)
            {
                identifier_key = { id = TicketManager.GenerateId() }, data = txt
            };

            this.WhatsParser.WhatsSendHandler.SendMessage(tmpMessage);
        }
    public static string GenerateId()
    {
        if (_instance == null)
        {
            _instance = new TicketManager();
        }

        return(IdBase + "-" + TicketCounter.NextTicket());
    }
Exemple #33
0
    void Awake()
    {
        _transform = this.transform;
        _mover = GetComponent<Mover>();
        _animation = new EnemyAnimation(GetComponentInChildren<Animator>());
        _myRenderer = GetComponentInChildren<SpriteRenderer>();
        _graphicsTrans = _myRenderer.transform;
        _weaponManager = GameObject.FindGameObjectWithTag("WeaponManager").GetComponent<WeaponManager>();
        _ticketManager = GameObject.FindGameObjectWithTag("TicketManager").GetComponent<TicketManager>();
        myTeam = Team.ENEMY;

        Initialize();
    }
        public void ChaseTicket(IList<ChaseAddInfo> chaseList)
        {
            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    UserManager userManager = new UserManager(tran);
                    TicketManager ticketManager = new TicketManager(tran);

                    foreach (ChaseAddInfo chase in chaseList)
                    {
                        ChaseEntity chaseEntity = new ChaseEntity();
                        chaseEntity.TicketId = chase.TicketId;
                        chaseEntity.GameName = chase.GameName;
                        chaseEntity.IssuseNumber = chase.IssuseNumber;
                        chaseEntity.Amount = chase.Amount;
                        chaseEntity.Money = chase.Money;
                        chaseEntity.UserId = chase.UserId;
                        chaseEntity.Status = (int)ChaseStatus.Chasing;
                        ticketManager.AddTicketChase(chaseEntity);

                        UserBalanceEntity balance = userManager.GetBalance(chase.UserId);
                        if (balance == null)
                        {
                            throw new FacadeException("帐户不存在,请先充值!");
                        }
                        decimal balanceMoney = balance.Balance.HasValue ? balance.Balance.Value : 0;
                        decimal freezeMoney = balance.Freeze.HasValue ? balance.Freeze.Value : 0;
                        decimal enableMoney = balanceMoney - freezeMoney;
                        if (enableMoney < chase.Money)
                        {
                            throw new FacadeException("帐户余额不足,请先充值!");
                        }
                        // 更新用户余额 - 冻结金额
                        balance.Freeze += chase.Money;
                        userManager.ModifyBalance(balance);
                    }
                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                throw HandleException(LogCategory.Ticket, "添加追号失败!", ex);
            }
        }
        /// <summary>
        /// 更新投注响应状态
        /// </summary>
        public void UpdateTicketStatus(TicketMappingInfo ticket, UserInfo user, HPResponseInfo response)
        {
            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    UserManager userManager = new UserManager(tran);
                    TicketManager ticketManager = new TicketManager(tran);

                    TicketDetailEntity tmp = ticketManager.GetFreezeTicketDetail(ticket.TicketId, user.UserId);
                    if (tmp == null || tmp.Status != (int)TicketStatus.Requesting)
                    {
                        throw new FacadeException("帐户数据错误,请联系系统管理员!");
                    }
                    UserBalanceEntity balance = userManager.GetBalance(user.UserId);
                    if (balance == null)
                    {
                        throw new FacadeException("帐户不存在,请先充值!");
                    }
                    TicketEntity entity = ticketManager.GetTicket(ticket.TicketId);
                    if (entity == null)
                    {
                        throw new FacadeException("出票数据错误,请联系管理员!");
                    }
                    if (response.Code == "0000")
                    {
                        entity.Status = (int)TicketStatus.Determinate;

                        TicketDetailEntity detail = new TicketDetailEntity();
                        detail.UserId = user.UserId;
                        detail.TicketId = ticket.TicketId;
                        detail.BalanceBefore = tmp.BalanceAfter;
                        detail.FreezeBefore = tmp.FreezeAfter;
                        detail.PayMoney = tmp.PayMoney;
                        detail.BalanceAfter = tmp.BalanceAfter - tmp.PayMoney;
                        detail.FreezeAfter = tmp.FreezeAfter - tmp.PayMoney;
                        detail.Status = (int)TicketStatus.Determinate;
                        detail.Message = "落地 - 更新金额并解冻" + tmp.PayMoney;
                        detail.CurrentTime = DateTime.Now;
                        // 添加彩票购买明细日志记录 - 状态为落地
                        ticketManager.AddTicketDetail(detail);

                        balance.Balance -= tmp.PayMoney;
                        balance.Freeze -= tmp.PayMoney;
                        userManager.ModifyBalance(balance);
                    }
                    else
                    {
                        entity.Status = (int)TicketStatus.Error;

                        TicketDetailEntity detail = new TicketDetailEntity();
                        detail.UserId = user.UserId;
                        detail.TicketId = ticket.TicketId;
                        detail.BalanceBefore = tmp.BalanceAfter;
                        detail.FreezeBefore = tmp.FreezeAfter;
                        detail.PayMoney = tmp.PayMoney;
                        detail.BalanceAfter = tmp.BalanceAfter;
                        detail.FreezeAfter = tmp.FreezeAfter - tmp.PayMoney;
                        detail.Status = (int)TicketStatus.Error;
                        detail.Message = "错误 - " + response.Message + " - 恢复冻结金额" + ticket.Money;
                        detail.CurrentTime = DateTime.Now;
                        // 添加彩票购买明细日志记录 - 状态为错误
                        ticketManager.AddTicketDetail(detail);

                        balance.Freeze -= tmp.PayMoney;
                        userManager.ModifyBalance(balance);
                    }
                    entity.ResponseCode = response.Code;
                    entity.ResponseMessage = response.Message;
                    entity.ResponseTime = DateTime.Now;

                    ticketManager.ModifyTicket(entity);
                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                throw HandleException(LogCategory.Ticket, "更新投注状态失败! - " + ex.Message, ex, ticket, response);
            }
        }
        /// <summary>
        /// 投注购票
        /// </summary>
        public void BuyTicket(TicketMappingInfo ticket, UserInfo user)
        {
            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    UserManager userManager = new UserManager(tran);
                    TicketManager ticketManager = new TicketManager(tran);

                    UserBalanceEntity balance = userManager.GetBalance(user.UserId);
                    if (balance == null)
                    {
                        throw new FacadeException("帐户不存在,请先充值!");
                    }
                    decimal balanceMoney = balance.Balance.HasValue ? balance.Balance.Value : 0;
                    decimal freezeMoney = balance.Freeze.HasValue ? balance.Freeze.Value : 0;
                    decimal enableMoney = balanceMoney - freezeMoney;
                    if (enableMoney < ticket.Money)
                    {
                        throw new FacadeException("帐户余额不足,请先充值!");
                    }

                    TicketDetailEntity detail = new TicketDetailEntity();
                    detail.UserId = user.UserId;
                    detail.TicketId = ticket.TicketId;
                    detail.BalanceBefore = balanceMoney;
                    detail.FreezeBefore = freezeMoney;
                    detail.PayMoney = ticket.Money;
                    detail.BalanceAfter = balanceMoney;
                    detail.FreezeAfter = freezeMoney + ticket.Money;
                    detail.Status = (int)TicketStatus.Requesting;
                    detail.Message = "投注 - 冻结金额" + ticket.Money;
                    detail.CurrentTime = DateTime.Now;
                    // 添加彩票购买明细日志记录 - 状态为请求中
                    ticketManager.AddTicketDetail(detail);
                    // 更新用户余额 - 冻结金额
                    balance.Freeze += ticket.Money;
                    userManager.ModifyBalance(balance);

                    TicketEntity entity = new TicketEntity();
                    entity.TicketId = ticket.TicketId;
                    entity.BuyType = (int)ticket.BuyType;
                    entity.Amount = ticket.Amount;
                    entity.Money = ticket.Money;
                    entity.UserId = user.UserId;
                    entity.GameName = ticket.IssueInfo.GameName;
                    entity.IssuseNumber = ticket.IssueInfo.Number;
                    entity.Status = (int)TicketStatus.Requesting;
                    entity.RequestTime = DateTime.Now;
                    ticketManager.AddTicket(entity);
                    foreach (string code in ticket.AnteCodes)
                    {
                        TicketAnteCodeEntity anteCode = new TicketAnteCodeEntity();
                        anteCode.TicketId = ticket.TicketId;
                        anteCode.AnteCode = code;
                        ticketManager.AddAnteCode(anteCode);
                    }
                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                throw HandleException(LogCategory.Ticket, "投注购票失败!", ex, ticket, user);
            }
        }
Exemple #37
0
 void Awake()
 {
     _anim = _graphicsTrans.gameObject.GetComponent<Animator>();
     _myTrans = transform;
     _myRenderer = _graphicsTrans.gameObject.GetComponent<SpriteRenderer>();
     _playerTrans = GameObject.FindGameObjectWithTag("Player").transform;
     _weaponManager = GameObject.FindGameObjectWithTag ("WeaponManager").GetComponent<WeaponManager>();
     _ticketManager = GameObject.FindGameObjectWithTag ("TicketManager").GetComponent<TicketManager>();
     myTeam = Team.ENEMY;
     _mover = GetComponent<Mover>();
     OnAwake();
 }
        /// <summary>
        /// Initiates TicketManager, interface for reading the xml files and managing the Tickets. add new tickets, values to use for displaying tickets.
        /// </summary>
        private void PopulateUIList()
        {
            TicketList = new TicketManager();

                var grid = new GridView();

                this.listView.View = grid;
                this.listView.PreviewMouseRightButtonUp += new MouseButtonEventHandler(listView_RightClickElement);
                this.listView.MouseDoubleClick += new MouseButtonEventHandler(listView_DoubleClick);

                GridViewColumn namecolumn = new GridViewColumn();
                namecolumn.DisplayMemberBinding = new Binding("Name");
                namecolumn.Header = "Name";

                grid.Columns.Add(namecolumn);

                GridViewColumn datecolumn = new GridViewColumn();
                Binding datebinding = new Binding("Date");
                datebinding.ConverterCulture = CultureInfo.CurrentCulture;
                datecolumn.DisplayMemberBinding = datebinding;
                datecolumn.Header = "Created";

                grid.Columns.Add(datecolumn);

                this.listView.ItemsSource = TicketList;
        }
        public void DistributeBonus(string gameName, string issueNumber)
        {
            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    BonusManager bonusManger = new BonusManager(tran);
                    UserManager userManager = new UserManager(tran);

                    BonusEntity bonusEntity = bonusManger.GetBonus(gameName, issueNumber);
                    if (bonusEntity == null)
                    {
                        throw new Exception("要分派的奖期信息不存在 - " + gameName + ":" + issueNumber);
                    }
                    if (bonusEntity.IsDistributed)
                    {
                        throw new Exception("此奖期已经派奖 - " + gameName + ":" + issueNumber);
                    }
                    IList<BonusDetailEntity> bonusDetailList = bonusManger.GetBonusDetailList(gameName, issueNumber);
                    TicketManager ticketManager = new TicketManager(tran);
                    foreach (BonusDetailEntity bonusDetail in bonusDetailList)
                    {
                        TicketEntity ticket = ticketManager.GetTicket(bonusDetail.TicketId);
                        if (ticket != null)
                        {
                            BonusDistributeEntity bonusDistribute = new BonusDistributeEntity();
                            bonusDistribute.TicketId = bonusDetail.TicketId;
                            bonusDistribute.BonusLevel = bonusDetail.BonusLevel;
                            bonusDistribute.UserId = ticket.UserId;
                            bonusDistribute.GameName = bonusDetail.GameName;
                            bonusDistribute.IssuseNumber = bonusDetail.IssuseNumber;
                            bonusDistribute.PlayType = bonusDetail.PlayType;
                            bonusDistribute.IsBombBonus = bonusDetail.IsBombBonus;
                            bonusDistribute.BonusSize = bonusDetail.Size;
                            bonusDistribute.Money = bonusDetail.Money;

                            bonusManger.AddBonusDistribute(bonusDistribute);

                            UserBalanceEntity balanceEntity = userManager.GetBalance(ticket.UserId);
                            if (balanceEntity == null)
                            {
                                throw new Exception("异常 - 彩民的账户不存在 - " + ticket.UserId);
                            }
                            if (!balanceEntity.Balance.HasValue)
                            {
                                throw new Exception("异常 - 彩民的账户为空 - " + ticket.UserId);
                            }
                            balanceEntity.Balance += bonusDetail.Money;
                            userManager.ModifyBalance(balanceEntity);
                        }
                    }
                    bonusEntity.IsDistributed = true;
                    bonusManger.ModifyBonusDistrbite(bonusEntity);

                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                string errMsg = "派奖失败 - " + gameName + ":" + issueNumber;
                throw HandleException(LogCategory.Distribute, errMsg, ex);
            }
        }