Пример #1
0
	public MainWindow() : base(Gtk.WindowType.Toplevel)
	{
		Build();
		Maximize();

		//Передаем лебл
		QSMain.StatusBarLabel = labelStatus;
		this.Title = AutofacScope.Resolve<IApplicationInfo>().ProductTitle;
		QSMain.MakeNewStatusTargetForNlog();
		Reference.RunReferenceItemDlg += OnRunReferenceItemDialog;

		QSMain.CheckServer(this); // Проверяем настройки сервера

		NavigationManager = AutofacScope.Resolve<GtkWindowsNavigationManager>();

		var checker = new VersionCheckerService(MainClass.AppDIContainer);
		checker.RunUpdate();

		//Пока такая реализация чтобы не плодить сущьностей.
		var connectionBuilder = AutofacScope.Resolve<MySqlConnectionStringBuilder>();
		if(connectionBuilder.UserID == "root")
		{
			string Message = "Вы зашли в программу под администратором базы данных. У вас есть только возможность создавать других пользователей.";
			MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent,
				MessageType.Info,
				ButtonsType.Ok,
				Message);
			md.Run();
			md.Destroy();
			Users WinUser = new Users();
			WinUser.Show();
			WinUser.Run();
			WinUser.Destroy();
			return;
		}

		var userService = AutofacScope.Resolve<IUserService>();
		var user = userService.GetCurrentUser(UoW);

		UsersAction.Sensitive = user.IsAdmin;
		salarycalculation1.Visible = user.IsAdmin;
		labelUser.LabelProp = user.Name;

		//Настраиваем календарь
		PrerareCalendars();

		notebookMain.CurrentPage = 0;
	}
Пример #2
0
    public MainWindow() : base(Gtk.WindowType.Toplevel)
    {
        Build();
        //Передаем лебл
        QSMain.StatusBarLabel = labelStatus;
        ProgressBar           = progresswidget1;
        this.Title            = AutofacScope.Resolve <IApplicationInfo>().ProductTitle;
        QSMain.MakeNewStatusTargetForNlog();

        QSMain.CheckServer(this);         // Проверяем настройки сервера

        NavigationManager      = AutofacScope.Resolve <TdiNavigationManager>(new TypedParameter(typeof(TdiNotebook), tdiMain));
        tdiMain.WidgetResolver = AutofacScope.Resolve <ITDIWidgetResolver>(new TypedParameter(typeof(Assembly[]), new[] { Assembly.GetAssembly(typeof(OrganizationViewModel)) }));

        var checker = new VersionCheckerService(MainClass.AppDIContainer);

        checker.RunUpdate();

        var userService  = AutofacScope.Resolve <IUserService>();
        var user         = userService.GetCurrentUser(UoW);
        var databaseInfo = AutofacScope.Resolve <IDataBaseInfo>();

        //Пока такая реализация чтобы не плодить сущностей.
        var connectionBuilder = AutofacScope.Resolve <MySqlConnectionStringBuilder>();

        if (connectionBuilder.UserID == "root")
        {
            string        Message = "Вы зашли в программу под администратором базы данных. У вас есть только возможность создавать других пользователей.";
            MessageDialog md      = new MessageDialog(this, DialogFlags.DestroyWithParent,
                                                      MessageType.Info,
                                                      ButtonsType.Ok,
                                                      Message);
            md.Run();
            md.Destroy();
            Users WinUser = new Users();
            WinUser.Show();
            WinUser.Run();
            WinUser.Destroy();
            return;
        }

        if (databaseInfo.IsDemo)
        {
            string Message = "Вы подключились к демонстрационному серверу. НЕ используете его для работы! " +
                             "Введенные данные будут доступны другим пользователям.\n\nДля работы вам необходимо " +
                             "установить собственный сервер или купить подписку на QS:Облако.";
            MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent,
                                                 MessageType.Info,
                                                 ButtonsType.Ok,
                                                 Message);
            md.Run();
            md.Destroy();
            dialogAuthenticationAction.Sensitive = false;
            ActionSN.Sensitive = false;
        }

        bool isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);

        if (isWindows)
        {
            this.KeyReleaseEvent += ClipboardWorkaround.HandleKeyReleaseEvent;
        }
        TDIMain.MainNotebook  = tdiMain;
        this.KeyReleaseEvent += TDIMain.TDIHandleKeyReleaseEvent;

        UsersAction.Sensitive = user.IsAdmin;
        labelUser.LabelProp   = user.Name;

        //Настраиваем новости
        var feeds = new List <NewsFeed>()
        {
            new NewsFeed("workwearsite", "Новости программы", "http://workwear.qsolution.ru/?feed=atom")
        };
        var reader = AutofacScope.Resolve <FeedReader>(new TypedParameter(typeof(List <NewsFeed>), feeds));

        reader.LoadReadFeed();
        var newsmenuModel = new QS.NewsFeed.ViewModels.NewsMenuViewModel(reader);
        var newsmenu      = new NewsMenuView(newsmenuModel);

        menubar1.Add(newsmenu);
        newsmenuModel.LoadFeed();

        ReadUserSettings();

        var EntityAutocompleteSelector = new JournalViewModelAutocompleteSelector <EmployeeCard, EmployeeJournalViewModel>(UoW, AutofacScope);

        entitySearchEmployee.ViewModel = new EntitySearchViewModel <EmployeeCard>(EntityAutocompleteSelector);
        entitySearchEmployee.ViewModel.EntitySelected += SearchEmployee_EntitySelected;

        NavigationManager                  = AutofacScope.Resolve <TdiNavigationManager>(new TypedParameter(typeof(TdiNotebook), tdiMain));
        tdiMain.WidgetResolver             = AutofacScope.Resolve <ITDIWidgetResolver>(new TypedParameter(typeof(Assembly[]), new[] { Assembly.GetAssembly(typeof(OrganizationViewModel)) }));
        NavigationManager.ViewModelOpened += NavigationManager_ViewModelOpened;

        #region Проверки и исправления базы
        //Если склады отсутствуют создаём новый, так как для версий ниже предприятия пользователь его создать не сможет.
        if (UoW.GetAll <Warehouse>().Count() == 0)
        {
            CreateDefaultWarehouse();
        }
        //Если у базы еще нет Guid создаем его.
        using (var localScope = MainClass.AppDIContainer.BeginLifetimeScope()) {
            var baseParam = localScope.Resolve <BaseParameters>();
            if (baseParam.Dynamic.BaseGuid == null)
            {
                baseParam.Dynamic.BaseGuid = Guid.NewGuid();
            }
        }
        #endregion

        FeaturesService = AutofacScope.Resolve <FeaturesService>();
        DisableFeatures();

        HistoryMain.Enable();
    }