protected override void LoadWorkerDoWork(object sender, DoWorkEventArgs e)
 {
     Utils.EnsureCulture();
     OnReloading = true;
     Dispatcher.Invoke(new Action(() => {
         aiLoader.Visibility    = Visibility.Visible;
         tbNoResults.Visibility = Visibility.Collapsed;
     }));
     if (Convert.ToBoolean(e.Argument))
     {
         Dispatcher.Invoke(new Action(() => {
             var propsSelectorWindow = new PropsSelectorWindow(true)
             {
                 Owner = this
             };
             Opacity = 0.5;
             propsSelectorWindow.ShowDialog();
             Opacity = 1;
             _propID = propsSelectorWindow.GetPropID();
         }));
     }
     e.Result = new List <object>
     {
         PropsService.Get(_propID), PropStatusChangesService.Instanse.GetLatest(_propID)
     };
 }
Esempio n. 2
0
        public async Task GetPropsWhichTypeIsShortSleeve_shouldReturnTrue()
        {
            var optionsBuilder = new DbContextOptionsBuilder <FabricaDBContext>()
                                 .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var context      = new FabricaDBContext(optionsBuilder.Options);
            var propsService = new PropsService(context);

            var props = SeededPropsShouldBeVisualizedAtIndex();
            await context.Props.AddRangeAsync(props);

            await context.SaveChangesAsync();

            var expected    = 1;
            var actualCount = await context.Props.Where(x => x.PropType == PropType.SS).CountAsync();

            Assert.True(actualCount == expected);
        }
Esempio n. 3
0
        public static string LabPropDetailer(LabProp labProp, ActionType actionType)
        {
            switch (actionType)
            {
            case ActionType.Created:
                return(string.Format("{0} به لیست اموال {1} اضافه شد.", PropsService.Get(labProp.PropID).Name,
                                     LabsService.Get(labProp.LabID).Name));

            case ActionType.Modified:
                return(string.Format("اطلاعات اموال {0} بروز شد.", LabsService.Get(labProp.LabID).Name));

            case ActionType.Removed:
                return(string.Format("{0} از لیست اموال {1} حذف شد.", PropsService.Get(labProp.PropID).Name,
                                     LabsService.Get(labProp.LabID).Name));

            default:
                return(null);
            }
        }
Esempio n. 4
0
 public static bool ChangeNotifiable(Notification notification)
 {
     try {
         if (notification.NotifyType == NotifyType.Prop)
         {
             return(PropsService.ChangeNotifiable(((Prop)notification.OriginalObject).PropID, false));
         }
         if (notification.NotifyType == NotifyType.Item)
         {
             return(ItemsService.ChangeNotifiable(((Item)notification.OriginalObject), false));
         }
         if (notification.NotifyType == NotifyType.Material)
         {
             return(MaterialsService.ChangeNotifiable(((Material)notification.OriginalObject).MaterialID, false));
         }
         return(false);
     } catch (Exception exception) {
         Logger.Write(exception);
         return(false);
     }
 }
Esempio n. 5
0
 protected override void SaveWorkerRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     if (Global.ShowQuestion(this))
     {
         var count          = PropsService.CountOfNotNotifiable() + MaterialsService.CountOfNotNotifiable();
         var progressWindow = new ProgressWindow(count);
         progressWindow.Show(this);
         foreach (var propID in PropsService.GetAllNotNotifiables())
         {
             PropsService.ChangeNotifiable(propID, true);
             progressWindow.IncreaseProgress();
         }
         foreach (var materialID in MaterialsService.GetAllNotNotifiables())
         {
             MaterialsService.ChangeNotifiable(materialID, true);
             progressWindow.IncreaseProgress();
         }
         progressWindow.Close();
         Global.ShowSuceeded(this);
         TryToLoad();
     }
     aiLoader.Visibility = Visibility.Collapsed;
     OnSaving            = false;
 }
Esempio n. 6
0
        public async Task GetProps_writeThemToDatabaseAndShowThoseWithPriceMoreThan50_ShouldReturnCount2()
        {
            var optionsBuilder = new DbContextOptionsBuilder <FabricaDBContext>()
                                 .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var context      = new FabricaDBContext(optionsBuilder.Options);
            var propsService = new PropsService(context);

            var props = new List <Prop>()
            {
                new Prop()
                {
                    Name        = "LS Crewneck",
                    Description = "Long Sleeve Pullover. 90% Cotton, 10% Silk",
                    PropType    = PropType.LS,
                    Hashtags    = "#LS #Pullover #Cotton",
                    ImageUrl    = GlobalConstants.LSCrewneck,
                    Price       = 56.5,
                },
                new Prop()
                {
                    Name        = "SS Crewneck",
                    Description = "Short Sleeve Shirt. 50% Cotton, 50% Silk",
                    PropType    = PropType.SS,
                    Hashtags    = "#SS #T-shirt #50/50",
                    ImageUrl    = GlobalConstants.SSCrewneck,
                    Price       = 60,
                }
            };

            context.Props.AddRange(props);
            await context.SaveChangesAsync();

            var count = await context.Props.Where(x => x.Price > 50).CountAsync();

            Assert.Equal(2, count);
        }
Esempio n. 7
0
        private bool ValidateFields()
        {
            if (string.IsNullOrWhiteSpace(cmbNames.Text))
            {
                Global.ValidationFailed(this, PropsResources.NameNull);
                cmbNames.Focus();
                return(false);
            }

            if (!string.IsNullOrWhiteSpace(tbPropNo.Text))
            {
                int temp;
                if (!int.TryParse(tbPropNo.Text, out temp))
                {
                    Global.ValidationFailed(this, PropsResources.PropNoInvalid);
                    tbPropNo.FocusAndSelect();
                    return(false);
                }
                if (!EditMode)
                {
                    if (PropsService.Exist(int.Parse(tbPropNo.Text)))
                    {
                        Global.ValidationFailed(this, PropsResources.PropNoDuplicate);
                        tbPropNo.FocusAndSelect();
                        return(false);
                    }
                }
                else
                {
                    if (PropsService.Exist(int.Parse(tbPropNo.Text), _current))
                    {
                        Global.ValidationFailed(this, PropsResources.PropNoDuplicate);
                        tbPropNo.FocusAndSelect();
                        return(false);
                    }
                }
            }

            if (!string.IsNullOrWhiteSpace(tbSerialNo.Text))
            {
                if (!EditMode)
                {
                    if (PropsService.Exist(tbSerialNo.Text))
                    {
                        Global.ValidationFailed(this, PropsResources.SerialNoDuplicate);
                        tbSerialNo.FocusAndSelect();
                        return(false);
                    }
                }
                else
                {
                    if (PropsService.Exist(tbSerialNo.Text, _current))
                    {
                        Global.ValidationFailed(this, PropsResources.SerialNoDuplicate);
                        tbSerialNo.FocusAndSelect();
                        return(false);
                    }
                }
            }

            if (!dtpPurchasingDate.IsValid)
            {
                Global.ValidationFailed(this, PropsResources.PurchasingDateInvalid);
                dtpPurchasingDate.FocusAndSelect();
                return(false);
            }

            if (!dtpWarrantyExpirationDate.IsValid)
            {
                Global.ValidationFailed(this, PropsResources.WarrantyExpirationDateInvalid);
                dtpWarrantyExpirationDate.FocusAndSelect();
                return(false);
            }

            return(true);
        }
Esempio n. 8
0
        protected override void RemoveWorkerRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (dgResults.SelectedItems.Count == 0 || dgResults.SelectedItem == null)
            {
                return;
            }

            OnReloading = true;

            var props = dgResults.SelectedItems.OfType <Prop>().ToList();

            if (props.Count > 0)
            {
                var failed       = false;
                var removedCount = 0;
                if (Global.DeleteQuestion(this))
                {
                    var progressResources = new ProgressWindow(props.Count);
                    progressResources.Show(this);
                    foreach (var prop in props)
                    {
                        string labName;
                        if (PropsService.ReferencedToOther(prop.PropID, out labName))
                        {
                            var temp = prop;
                            if (
                                Global.ReferenceFound(this,
                                                      string.Format(PropsResources.Referenced,
                                                                    new[] { temp.Name, temp.PropNo.ToString(), labName })) ==
                                MessageBoxResult.Yes)
                            {
                                if (!PropsService.Instanse.Remove(prop))
                                {
                                    failed = true;
                                    Global.DeletionFailed(this);
                                }
                                else
                                {
                                    removedCount++;
                                }
                            }
                        }
                        else if (!PropsService.Instanse.Remove(prop))
                        {
                            failed = true;
                            Global.DeletionFailed(this);
                        }
                        else
                        {
                            removedCount++;
                        }
                        progressResources.IncreaseProgress();
                    }
                    progressResources.Close();
                    if (props.Count > 1 && failed)
                    {
                        Global.DeletionSuceededWithSomeFailures(this);
                    }
                    else if (removedCount > 0 & !failed)
                    {
                        Global.DeletionSuceeded(this);
                    }
                    ResetFields();
                    TryToLoad();
                }
            }

            OnReloading = false;
        }
Esempio n. 9
0
        private void TvZonesSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            HideAll();
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[0]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[1]))
            {
                cmbCategories.SelectedIndex = -1;
                cmbCategories.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[0]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[2]))
            {
                cmbNames.DisplayMemberPath = "Name";
                cmbNames.SelectedValuePath = "PropID";
                cmbNames.Tag           = SearchResources.PropName;
                cmbNames.ItemsSource   = PropsService.Instanse.GetAll();
                cmbNames.SelectedIndex = -1;
                cmbNames.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[0]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[3]))
            {
                dtpInDate.Value  = PropsService.GetMinCreatedOn();
                dtpOutDate.Value = PropsService.GetMaxCreatedOn();
                gDate.Visibility = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[0]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[4]))
            {
                cmbInNo.ItemsSource    = cmbOutNo.ItemsSource = PropsService.GetAllPropNos();
                cmbInNo.SelectedIndex  = 0;
                cmbOutNo.SelectedIndex = cmbOutNo.Items.Count - 1;
                gNo.Visibility         = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[0]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[5]))
            {
                cmbStatus.SelectedIndex = -1;
                cmbStatus.Visibility    = Visibility.Visible;
            }

            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[6]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[7]))
            {
                cmbCategories.SelectedIndex = -1;
                cmbCategories.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[6]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[8]))
            {
                cmbNames.DisplayMemberPath = "Name";
                cmbNames.SelectedValuePath = "MaterialID";
                cmbNames.Tag           = SearchResources.MaterialName;
                cmbNames.ItemsSource   = MaterialsService.Instanse.GetAll();
                cmbNames.SelectedIndex = -1;
                cmbNames.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[6]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[9]))
            {
                dtpInDate.Value  = MaterialsService.GetMinCreatedOn();
                dtpOutDate.Value = MaterialsService.GetMaxCreatedOn();
                gDate.Visibility = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[6]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[10]))
            {
                tbInAmount.Text    = MaterialsService.GetMinLowestAmount().ToString();
                tbOutAmount.Text   = MaterialsService.GetMaxLowestAmount().ToString();
                gAmount.Visibility = Visibility.Visible;
            }

            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[11]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[12]))
            {
                cmbNames.DisplayMemberPath = "UserName";
                cmbNames.SelectedValuePath = "UserID";
                cmbNames.Tag           = SearchResources.UserName;
                cmbNames.ItemsSource   = UsersService.Instanse.GetAll(false, false);
                cmbNames.SelectedIndex = -1;
                cmbNames.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[11]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[13]))
            {
                dtpInDate.Value  = RepositoryMaterialsService.GetMinRegisteredOn();
                dtpOutDate.Value = RepositoryMaterialsService.GetMaxRegisteredOn();
                gDate.Visibility = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[11]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[14]))
            {
                cmbTargetApplicants.ItemsSource   = RepositoryMaterialsService.Instanse.GetAllTargetApplicants(false);
                cmbTargetApplicants.SelectedIndex = -1;
                cmbTargetApplicants.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[11]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[15]))
            {
                tbInAmount.Text    = RepositoryMaterialsService.GetMinAmount().ToString();
                tbOutAmount.Text   = RepositoryMaterialsService.GetMaxAmount().ToString();
                gAmount.Visibility = Visibility.Visible;
            }

            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[16]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[17]))
            {
                cmbCategories.SelectedIndex = -1;
                cmbCategories.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[16]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[18]))
            {
                cmbNames.DisplayMemberPath = "Name";
                cmbNames.SelectedValuePath = "ItemID";
                cmbNames.Tag           = SearchResources.InItemsByName;
                cmbNames.ItemsSource   = ItemsService.Instanse.GetAll();
                cmbNames.SelectedIndex = -1;
                cmbNames.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[16]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[19]))
            {
                dtpInDate.Value  = ItemsService.GetMinCreatedOn();
                dtpOutDate.Value = ItemsService.GetMaxCreatedOn();
                gDate.Visibility = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[16]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[20]))
            {
                tbInAmount.Text    = ItemsService.GetMinLowestAmount().ToString();
                tbOutAmount.Text   = ItemsService.GetMaxLowestAmount().ToString();
                gAmount.Visibility = Visibility.Visible;
            }

            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[21]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[22]))
            {
                cmbNames.DisplayMemberPath = "UserName";
                cmbNames.SelectedValuePath = "UserID";
                cmbNames.Tag           = SearchResources.UserName;
                cmbNames.ItemsSource   = UsersService.Instanse.GetAll(false, false);
                cmbNames.SelectedIndex = -1;
                cmbNames.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[21]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[23]))
            {
                dtpInDate.Value  = RepositoryItemsService.GetMinRegisteredOn();
                dtpOutDate.Value = RepositoryItemsService.GetMaxRegisteredOn();
                gDate.Visibility = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[21]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[24]))
            {
                cmbTargetApplicants.ItemsSource   = RepositoryItemsService.Instanse.GetAllTargetApplicants(false);
                cmbTargetApplicants.SelectedIndex = -1;
                cmbTargetApplicants.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[21]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[25]))
            {
                tbInAmount.Text    = RepositoryItemsService.GetMinAmount().ToString();
                tbOutAmount.Text   = RepositoryItemsService.GetMaxAmount().ToString();
                gAmount.Visibility = Visibility.Visible;
            }

            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[26]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[27]))
            {
                cmbNames.DisplayMemberPath = "Name";
                cmbNames.SelectedValuePath = "LabID";
                cmbNames.Tag           = SearchResources.InLabsByName;
                cmbNames.ItemsSource   = LabsService.Instanse.GetAll();
                cmbNames.SelectedIndex = -1;
                cmbNames.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[26]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[28]))
            {
                dtpInDate.Value  = LabsService.GetMinCreatedOn();
                dtpOutDate.Value = LabsService.GetMaxCreatedOn();
                gDate.Visibility = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[26]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[29]))
            {
                cmbInNo.ItemsSource    = cmbOutNo.ItemsSource = LabsService.Instanse.GetAllPlaqueNos();
                cmbInNo.SelectedIndex  = 0;
                cmbOutNo.SelectedIndex = cmbOutNo.Items.Count - 1;
                gNo.Visibility         = Visibility.Visible;
            }

            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[30]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[31]))
            {
                cmbNames.DisplayMemberPath = "Name";
                cmbNames.SelectedValuePath = "LabID";
                cmbNames.Tag           = SearchResources.InLabPropsByLabName;
                cmbNames.ItemsSource   = LabsService.Instanse.GetAll();
                cmbNames.SelectedIndex = -1;
                cmbNames.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[30]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[32]))
            {
                dtpInDate.Value  = LabPropsService.GetMinAssignedOn();
                dtpOutDate.Value = LabPropsService.GetMaxAssignedOn();
                gDate.Visibility = Visibility.Visible;
            }

            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[33]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[34]))
            {
                cmbNames.DisplayMemberPath = "UserName";
                cmbNames.SelectedValuePath = "UserID";
                cmbNames.Tag           = SearchResources.InLogsByUserName;
                cmbNames.ItemsSource   = UsersService.Instanse.GetAll(false, false);
                cmbNames.SelectedIndex = -1;
                cmbNames.Visibility    = Visibility.Visible;
            }
            if (ReferenceEquals(e.NewValue, tvZones.ActualItems()[33]) ||
                ReferenceEquals(e.NewValue, tvZones.ActualItems()[35]))
            {
                dtpInDate.Value  = LogsService.GetMinLoggedOn();
                dtpOutDate.Value = LogsService.GetMaxLoggedOn();
                gDate.Visibility = Visibility.Visible;
            }
        }
Esempio n. 10
0
        protected override void OnStartup(StartupEventArgs e)
        {
            Current.DispatcherUnhandledException += OnDispatcherUnhandledException;

            base.OnStartup(e);
            if (!SingleInstance <App> .InitializeAsFirstInstance(PhoenixUniqueKey))
            {
                Current.Shutdown();
                return;
            }
            OriginResolution = new Rect {
                Width  = SystemParameters.VirtualScreenWidth,
                Height = SystemParameters.VirtualScreenHeight
            };
            if (Settings.Default.ResetPennding)
            {
                Settings.Default.Reset();
            }
            if (Settings.Default.ModeIndex == -1)
            {
                Utils.UpdateScreenResolution();
            }
            if (string.IsNullOrEmpty(Settings.Default.BackupPath))
            {
                var executionPath = AppDomain.CurrentDomain.BaseDirectory;
                var backupPath    = string.Format(@"{0}Backup", executionPath);

                Settings.Default.BackupPath = backupPath;
                Settings.Default.Save();
            }
            if (!Directory.Exists(Settings.Default.BackupPath))
            {
                Directory.CreateDirectory(Settings.Default.BackupPath,
                                          new DirectorySecurity(AppDomain.CurrentDomain.BaseDirectory,
                                                                AccessControlSections.Owner));
            }
            Utils.SetResolution();
            Utils.EnsureCulture();

            Utils.AddThemeBaseDictionaries();
            try {
                DbContext.Init();
            } catch (Exception ex) {
                Logger.Write(ex);
                MessageWindowHelpers.Show(null, SplashResources.DatabaseInitFailed, MessageBoxButton.OK,
                                          MessageBoxImage.Hand);
                Current.Shutdown();
                return;
            }
            try {
                PropsService.Get(Guid.NewGuid());
            } catch (Exception ex) {
                Logger.Write(ex);
                MessageWindowHelpers.Show(null, SplashResources.DatabaseTestFailed, MessageBoxButton.OK,
                                          MessageBoxImage.Hand);
                Current.Shutdown();
                return;
            }
            try {
                var administratorRole = RolesService.Instanse.GetAdministrator(false);
                if (administratorRole == null)
                {
                    RolesService.Instanse.CreateAdministrator();
                }

                var systemUser = UsersService.Instanse.GetSystemUser(false);
                if (systemUser == null)
                {
                    UsersService.Instanse.CreateSystemUser();
                }
            } catch (Exception exception) {
                Logger.Write(exception);
                MessageWindowHelpers.Show(null, SplashResources.TestCheckIndeedRecordsFailed, MessageBoxButton.OK,
                                          MessageBoxImage.Hand);
            }
        }