Ejemplo n.º 1
0
        public void Load(int projectID)
        {
            _loaded = false;
            using (var dc = new ORM.FPMDataContext())
            {
                if (dc.ProjectInfoView.Any(x => x.ID == projectID))
                {
                    Project           = dc.ProjectInfoView.Single(x => x.ID == projectID);
                    ProjectWasChanged = false;
                }
                else
                {
                    Project = new ORM.ProjectInfoView()
                    {
                        Caption  = "Новый проект",
                        CrtDate  = DateTime.Now,
                        IsInWork = false,
                        Priority = 3,
                        RowState = Convert.ToInt16(ERowState.Active)
                    };

                    ProjectWasChanged = true;
                };
            };
            Project.PropertyChanged += _project_PropertyChanged;
            ProjectCaption.Text      = (_project.Caption.Length > 26) ? String.Format("{0}...", _project.Caption.Substring(0, 23)) : _project.Caption;
            ProjectCaption.ToolTip   = _project.Caption;
            StageTileView.Load(_project);
            GeneralProjectView.Project = _project;
            _loaded = true;
        }
Ejemplo n.º 2
0
 public CustomerWindow()
 {
     _dc = new ORM.FPMDataContext();
     InitializeComponent();
     AnimationDuration        = new TimeSpan(0, 0, 0, 0, 500);
     this.DataContext         = this;
     ContactGrid.FilterString = "RowState = 1";
     IsShowApplyButton        = true;
 }
        public ProjectInfoView()
        {
            InitializeComponent();
            this.DataContext = this;

            using (var dc = new ORM.FPMDataContext())
            {
                TypeLookup.ItemsSource = dc.ProjectKindsView.ToList();
            };
            PriorityLookup.ItemsSource = EProjectPriority.High.GetKeyDescriptionList();
        }
Ejemplo n.º 4
0
 public void Refresh(int projectID)
 {
     OnPropertyChanged("IsShowPrices");
     using (var dc = new ORM.FPMDataContext())
     {
         ProjectStatistics = new ObservableCollection <ORM.ProjectStatisticView>(dc.ProjectStatisticView);
     };
     bindActiveProjectsData();
     if (projectID > 0)
     {
         HighLightTile(projectID);
     }
     ;
 }
Ejemplo n.º 5
0
 private void WizardDeleteButton_Click(object sender, RoutedEventArgs e)
 {
     if (MessageBox.Show("Вы действительно хотите удалить выбранный проект?", "Подтверждение", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
     {
         using (var dc = new ORM.FPMDataContext())
         {
             if (dc.Project.Any(x => x.ID == _project.ID))
             {
                 var project = dc.Project.Single(x => x.ID == _project.ID);
                 project.RowState = Convert.ToInt16(ERowState.Deleted);
                 dc.SubmitChanges();
             }
             ;
         };
         ProjectWasChanged = false;
         _changesWasSaved  = true;
         closeWizard();
     }
 }
Ejemplo n.º 6
0
        private void bindActiveProjectsData()
        {
            Func <ORM.ActualProjectView, bool> clause = null;
            var focusedTile = (EStatisticsTile)Enum.Parse(typeof(EStatisticsTile), _focusedTailTag);

            switch (focusedTile)
            {
            case EStatisticsTile.HighPriority:
                clause = new Func <ORM.ActualProjectView, bool>(x => x.IsHighPriority);
                break;

            case EStatisticsTile.Today:
                clause = new Func <ORM.ActualProjectView, bool>(x => x.IsToday);
                break;

            case EStatisticsTile.Current:
                clause = new Func <ORM.ActualProjectView, bool>(x => x.IsCurrent);
                break;

            case EStatisticsTile.Overstay:
                clause = new Func <ORM.ActualProjectView, bool>(x => x.IsOverstay);
                break;

            case EStatisticsTile.ProductionCompleted:
                clause = new Func <ORM.ActualProjectView, bool>(x => x.IsProductionCompleted);
                break;

            case EStatisticsTile.Prepare:
                clause = new Func <ORM.ActualProjectView, bool>(x => x.IsPrepare);
                break;

            case EStatisticsTile.Archive:
                clause = new Func <ORM.ActualProjectView, bool>(x => x.IsArchive);
                break;
            }
            ;

            using (var dc = new ORM.FPMDataContext())
            {
                ActiveProjects = new ObservableCollection <ORM.ActualProjectView>(dc.ActualProjectView.Where(clause));
            };
        }
Ejemplo n.º 7
0
        private void WizardArchiveButton_Click(object sender, RoutedEventArgs e)
        {
            var message = (_project.RowState == Convert.ToInt16(ERowState.Active)) ? "Вы действительно хотите отправить выбранный проект в архив?" : "Вы действительно хотите восстановить выбранный проект?";

            if (MessageBox.Show(message, "Подтверждение", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                using (var dc = new ORM.FPMDataContext())
                {
                    if (dc.Project.Any(x => x.ID == _project.ID))
                    {
                        var project = dc.Project.Single(x => x.ID == _project.ID);
                        project.RowState = (project.RowState == Convert.ToInt16(ERowState.Active)) ? Convert.ToInt16(ERowState.Archived) : Convert.ToInt16(ERowState.Active);
                        dc.SubmitChanges();
                    }
                    ;
                };
                ProjectWasChanged = false;
                _changesWasSaved  = true;
                closeWizard();
            }
        }
Ejemplo n.º 8
0
        public void HighLightTile(int projectID)
        {
            using (var dc = new ORM.FPMDataContext())
            {
                if (dc.ActualProjectView.Any(x => x.ProjectID == projectID))
                {
                    var project = dc.ActualProjectView.Single(x => x.ProjectID == projectID);
                    var inTile  = project.GetProjectStatisticsTile();

                    var fadeIn = new DoubleAnimation()
                    {
                        From           = 1,
                        To             = 0.5,
                        AutoReverse    = true,
                        Duration       = new Duration(new TimeSpan(0, 0, 0, 0, 500)),
                        RepeatBehavior = new RepeatBehavior(4)
                    };
                    var tile = (Tile)this.FindName(String.Format("{0}Tile", inTile.ToString()));
                    tile.BeginAnimation(Window.OpacityProperty, fadeIn);
                    // settings.BeginAnimation(Window.OpacityProperty, fadeIn);
                }
                ;
            };
        }
Ejemplo n.º 9
0
        private void WizardApplyButton_Click(object sender, RoutedEventArgs e)
        {
            if (ValidateWizard())
            {
                var saveData     = true;
                var newProjectID = -1;
                using (var dc = new ORM.FPMDataContext())
                {
                    #region ProjectInfo changes
                    var         findProject = new Func <ORM.Project, bool>(x => x.ID == _project.ID);
                    ORM.Project project     = null;
                    if (dc.Project.Any(findProject))
                    {
                        project      = dc.Project.Single(findProject);
                        newProjectID = project.ID;
                    }
                    else
                    {
                        project = new ORM.Project();
                    };
                    project.Type = _project.Type;
                    project.ResponsiblePerson = _project.ResponsiblePerson;
                    project.Progress          = getProjectProgress();
                    project.Priority          = _project.Priority;
                    project.Note      = _project.Note;
                    project.IsInWork  = _project.IsInWork;
                    project.ContactID = _project.ContactID;
                    project.Caption   = _project.Caption;
                    project.CrtDate   = _project.CrtDate;
                    project.RowState  = _project.RowState;
                    #endregion
                    if (_project.ID <= 0)
                    {
                        dc.Project.InsertOnSubmit(project);
                    }
                    else
                    {
                        #region ProjectStage changes
                        var stages = dc.ProjectStage.Where(x => x.ProjectID == _project.ID);
                        foreach (var itm in stages)
                        {
                            if (!saveData)
                            {
                                break;
                            }
                            ;
                            if (StageTileView.Stages.Any(x => x.ID == itm.ID))
                            {
                                /*измененные стадии*/
                                var stg = StageTileView.Stages.Single(x => x.ID == itm.ID);
                                itm.IsPublic        = stg.IsPublic;
                                itm.SortIndex       = stg.SortIndex;
                                itm.Name            = stg.Name;
                                itm.Note            = stg.Note;
                                itm.ResponsibleRole = stg.ResponsibleRole;
                                itm.StageState      = stg.StageState;

                                /*Изменение параметров стадии*/
                                var parameters = dc.StageParameter.Where(x => x.ProjectStageID == itm.ID);
                                foreach (var par in parameters)
                                {
                                    if (stg.StageParameter.Any(x => x.ID == par.ID))
                                    {
                                        var srcPar = stg.StageParameter.Single(x => x.ID == par.ID);
                                        par.NumberValue   = srcPar.NumberValue;
                                        par.StringValue   = srcPar.StringValue;
                                        par.DateTimeValue = srcPar.DateTimeValue;
                                    }
                                    else
                                    {
                                        dc.StageParameter.DeleteOnSubmit(par);
                                        if (ParameterRepository.GetParameterValueType(par.ParameterID) == EParameterValueType.Path)
                                        {
                                            if (!stg.StageParameter.Any(x => x.StringValue == par.StringValue))
                                            {
                                                saveData = deleteFile(par);
                                            }
                                            ;
                                        }
                                        ;
                                    };
                                }
                                ;
                                if (saveData)
                                {
                                    /*Новые параметры*/
                                    foreach (var nStg in stg.StageParameter.Where(x => x.ID < 0))
                                    {
                                        var newParameter = new ORM.StageParameter()
                                        {
                                            CrtDate        = nStg.CrtDate,
                                            DateTimeValue  = nStg.DateTimeValue,
                                            NumberValue    = nStg.NumberValue,
                                            StringValue    = nStg.StringValue,
                                            ParameterID    = nStg.ParameterID,
                                            ProjectStageID = nStg.ProjectStageID
                                        };
                                        dc.StageParameter.InsertOnSubmit(newParameter);
                                    }
                                    ;
                                }
                                ;
                            }
                            else
                            {
                                /*удаленные стадии*/
                                itm.RowState = Convert.ToInt16(ERowState.Deleted);
                            };
                        }
                        ;
                        #endregion
                    };
                    if (saveData)
                    {
                        if (StageTileView.Stages.Any(x => x.ID == 0))
                        {
                            /*новые стадии*/
                            foreach (var itm in StageTileView.Stages.Where(x => x.ID == 0))
                            {
                                var stage = new ORM.ProjectStage()
                                {
                                    CrtDate         = itm.CrtDate,
                                    IsPublic        = itm.IsPublic,
                                    Name            = itm.Name,
                                    Note            = itm.Note,
                                    Project         = project,
                                    ResponsibleRole = itm.ResponsibleRole,
                                    RowState        = 1,
                                    SortIndex       = itm.SortIndex,
                                    StageState      = itm.StageState,
                                    StageParameter  = itm.StageParameter
                                };
                                dc.ProjectStage.InsertOnSubmit(stage);
                            }
                            ;
                        }
                        ;
                    }
                    ;
                    #region Upload Files
                    if (project.ID > 0)
                    {
                        saveData = UploadFiles();
                        if (saveData)
                        {
                            dc.SubmitChanges();
                        }
                        ;
                    }
                    else
                    {
                        dc.SubmitChanges();
                        newProjectID = project.ID;
                        UploadFiles();
                    };
                    #endregion
                };
                if (saveData)
                {
                    var focusedStage = StageTileView.Stages.Single(x => x.IsFocused);
                    Load(newProjectID);
                    StageTileView.FocusedStage = focusedStage;
                }
                ;
                ProjectWasChanged = !saveData;
                _changesWasSaved  = saveData;

                OnPropertyChanged("AllowDeleteAndArchieveProject");
            }
            ;
        }