コード例 #1
0
ファイル: App.xaml.cs プロジェクト: gitter-badger/OnkoTePla
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            AssureAppDataDirectoriesExist();

            ///////////////////////////////////////////////////////////////////////////////////////////////
            ////////                                                                             //////////
            ////////                          Composition Root and Setup                         //////////
            ////////                                                                             //////////
            ///////////////////////////////////////////////////////////////////////////////////////////////

            var connectionService = new ConnectionService();
            var eventBus          = new ClientEventBus(connectionService);

            var commandHandlerCollection = new SingleHandlerCollection <DomainCommand>();
            var commandMessageBus        = new LocalMessageBus <DomainCommand>(commandHandlerCollection);
            var commandBus = new CommandBus(commandMessageBus);

            var persistenceService      = new LocalSettingsXMLPersistenceService(GlobalConstants.LocalSettingsPersistenceFile);
            var localSettingsRepository = new LocalSettingsRepository(persistenceService);

            localSettingsRepository.LoadRepository();

            var clientMedicalPracticeRepository  = new ClientMedicalPracticeRepository(connectionService);
            var clientPatientRepository          = new ClientPatientRepository(connectionService);
            var clienttherapyPlaceTypeRepository = new ClientTherapyPlaceTypeRepository(connectionService);
            var clientLabelRepository            = new ClientLabelRepository(connectionService);
            var clientReadmodelRepository        = new ClientReadModelRepository(eventBus, clientPatientRepository, clientMedicalPracticeRepository, clientLabelRepository, connectionService);


            var workFlow = new ClientWorkflow();
            var session  = new Session(connectionService, workFlow);

            var fatalErrorHandler = new FatalErrorHandler(session);

            var commandService = new CommandService(session, clientReadmodelRepository, commandBus);


            var userActionBuilder = new UserActionBuilder(commandService);

            // CommandHandler

            var addAppointmentCommandHandler     = new     AddAppointmentCommandHandler(connectionService, session, clientPatientRepository, userActionBuilder, fatalErrorHandler.HandleFatalError);
            var deleteAppointmentCommandHandler  = new  DeleteAppointmentCommandHandler(connectionService, session, clientPatientRepository, userActionBuilder, fatalErrorHandler.HandleFatalError);
            var replaceAppointmentCommandHandler = new ReplaceAppointmentCommandHandler(connectionService, session, clientPatientRepository, clientMedicalPracticeRepository, userActionBuilder, fatalErrorHandler.HandleFatalError);

            commandBus.RegisterCommandHandler(addAppointmentCommandHandler);
            commandBus.RegisterCommandHandler(deleteAppointmentCommandHandler);
            commandBus.RegisterCommandHandler(replaceAppointmentCommandHandler);


            // initiate ViewModelCommunication

            var handlerCollection = new MultiHandlerCollection <ViewModelMessage>();
            IMessageBus <ViewModelMessage> viewModelMessageBus  = new LocalMessageBus <ViewModelMessage>(handlerCollection);
            IViewModelCollectionList       viewModelCollections = new ViewModelCollectionList();

            IViewModelCommunication viewModelCommunication = new ViewModelCommunication(viewModelMessageBus,
                                                                                        viewModelCollections);


            var mainWindowBuilder = new MainWindowBuilder(localSettingsRepository,
                                                          clientPatientRepository,
                                                          clientMedicalPracticeRepository,
                                                          clientReadmodelRepository,
                                                          clienttherapyPlaceTypeRepository,
                                                          clientLabelRepository,
                                                          commandService,
                                                          viewModelCommunication,
                                                          session,
                                                          "0.1.0.0",                                                             // TODO: get real versionNumber
                                                          fatalErrorHandler.HandleFatalError);

            var mainWindow = mainWindowBuilder.BuildWindow();

            mainWindow.ShowDialog();



            ///////////////////////////////////////////////////////////////////////////////////////////////
            ////////                                                                             //////////
            ////////             Clean Up and store data after main Window was closed            //////////
            ////////                                                                             //////////
            ///////////////////////////////////////////////////////////////////////////////////////////////

            localSettingsRepository.PersistRepository();

            connectionService.Dispose();
        }
コード例 #2
0
        private bool saveTransaction(ISession session, String filename, TrxPayroll trx, int cid, ILog log, out int IDTrxs, UserMap umap)
        {
            IDTrxs = 0;
            Boolean isTrue = true;

            try
            {
                String[]    tmpfileInfo = filename.Split('!');
                Transaction tx          = new Transaction();
                tx.Handle        = "ADD PAYROLLBRI";
                tx.TransactionId = 101;
                //tx.CreatedTime = DateTime.ParseExact(tmpfileInfo[0], "ddMMyyhhmmss", System.Globalization.CultureInfo.InvariantCulture);// Dari Split
                tx.CreatedTime  = DateTime.Now;
                tx.VerifiedTime = DateTime.Now;
                tx.ApprovedTime = DateTime.Now;
                tx.TObject      = trx.ToString();
                tx.ClientId     = cid;
                tx.Status       = 1;
                tx.Action       = "ADD";
                tx.Maker        = umap.UserHandle + " - " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
                Console.WriteLine("AA => " + umap.UserHandle + " - " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                Console.WriteLine("BB => " + tx.Maker);
                tx.Checker     = "";
                tx.Approver    = "";
                tx.Checker     = "";
                tx.Approver    = "";
                tx.CheckWork   = 0;
                tx.CheckTotal  = 0;
                tx.ApproveWork = 0;
                tx.CheckTotal  = 0;

                ClientWorkflow cm = session.CreateCriteria(typeof(ClientWorkflow))
                                    .Add(Expression.Eq("Id", cid))
                                    .UniqueResult <ClientWorkflow>();

                WorkflowHelper wh = new WorkflowHelper(cm.Workflow);
                if (!(null == wh))
                {
                    Workflow flow = wh.GetWorkflow(100);
                    if (!(null == flow))
                    {
                        //tx.Maker = "";
                        tx.Approver     = "";
                        tx.CheckTotal   = flow.TotalVerifier;
                        tx.ApproveTotal = flow.TotalApprover;
                    }
                    else
                    {
                        throw new Exception("Matrix PAYROLL is Null for this Client");
                    }
                }


                IDTrxs = (int)session.Save(tx);
                session.Flush();
                isTrue = true;
            }
            catch (Exception ex)
            {
                isTrue = false;
                log.Error("== " + SchedulllerCode + " = Scheduller GetFilePayrollKai Failed to Start => Exception Message =" + " " + ex.Message);
                log.Error("== " + SchedulllerCode + " = Scheduller GetFilePayrollKai Failed to Start => Exception InnerMessage =" + " " + ex.InnerException);
                log.Error("== " + SchedulllerCode + " = Scheduller GetFilePayrollKai Failed to Start => Exception StackTrace =" + " " + ex.StackTrace);
            }
            return(isTrue);
        }
コード例 #3
0
        public void BuildAndStart(StartupEventArgs startupEventArgs)
        {
#if DEBUG
            var listener = new OnkoTePlaDebugListener();

            Debug.Listeners.Add(listener);
#endif

            AssureAppDataDirectoriesExist();

            connectionService = new ConnectionService();
            var eventBus = new ClientEventBus(connectionService);

            var commandHandlerCollection = new SingleHandlerCollection <DomainCommand>();
            var commandMessageBus        = new LocalMessageBus <DomainCommand>(commandHandlerCollection);
            var commandBus = new CommandBus(commandMessageBus);

            var persistenceService = new LocalSettingsXMLPersistenceService(GlobalConstants.LocalSettingsPersistenceFile);

            localSettingsRepository = new LocalSettingsRepository(persistenceService);
            localSettingsRepository.LoadRepository();

            var clientMedicalPracticeRepository  = new ClientMedicalPracticeRepository(connectionService);
            var clientPatientRepository          = new ClientPatientRepository(connectionService);
            var clienttherapyPlaceTypeRepository = new ClientTherapyPlaceTypeRepository(connectionService);
            var clientLabelRepository            = new ClientLabelRepository(connectionService);
            var clientReadmodelRepository        = new ClientReadModelRepository(eventBus, clientPatientRepository, clientMedicalPracticeRepository, clientLabelRepository, connectionService);


            var workFlow = new ClientWorkflow();
            var session  = new Session(connectionService, workFlow);

            var fatalErrorHandler = new FatalErrorHandler(session);

            var commandService = new CommandService(session, clientReadmodelRepository, commandBus);


            var userActionBuilder = new UserActionBuilder(commandService);

            // CommandHandler

            var addAppointmentCommandHandler     = new     AddAppointmentCommandHandler(connectionService, session, clientPatientRepository, userActionBuilder, fatalErrorHandler.HandleFatalError);
            var deleteAppointmentCommandHandler  = new  DeleteAppointmentCommandHandler(connectionService, session, clientPatientRepository, userActionBuilder, fatalErrorHandler.HandleFatalError);
            var replaceAppointmentCommandHandler = new ReplaceAppointmentCommandHandler(connectionService, session, clientPatientRepository, clientMedicalPracticeRepository, userActionBuilder, fatalErrorHandler.HandleFatalError);

            commandBus.RegisterCommandHandler(addAppointmentCommandHandler);
            commandBus.RegisterCommandHandler(deleteAppointmentCommandHandler);
            commandBus.RegisterCommandHandler(replaceAppointmentCommandHandler);


            // initiate ViewModelCommunication

            var handlerCollection = new MultiHandlerCollection <ViewModelMessage>();
            IMessageBus <ViewModelMessage> viewModelMessageBus  = new LocalMessageBus <ViewModelMessage>(handlerCollection);
            IViewModelCollectionList       viewModelCollections = new ViewModelCollectionList();

            IViewModelCommunication viewModelCommunication = new ViewModelCommunication(viewModelMessageBus,
                                                                                        viewModelCollections);


            var mainWindowBuilder = new MainWindowBuilder(localSettingsRepository,
                                                          clientPatientRepository,
                                                          clientMedicalPracticeRepository,
                                                          clientReadmodelRepository,
                                                          clienttherapyPlaceTypeRepository,
                                                          clientLabelRepository,
                                                          commandService,
                                                          viewModelCommunication,
                                                          session,
                                                          fatalErrorHandler.HandleFatalError);

            var mainWindow = mainWindowBuilder.BuildWindow();

            mainWindow.Show();

#if DEBUG
            var debugOutputWindowViewModel = new DebugOutputWindowViewModel(listener);

            var debugWindow = new DebugOutputWindow
            {
                Owner       = mainWindow,
                DataContext = debugOutputWindowViewModel
            };

            debugWindow.Show();
#endif
        }