private void TemplatesListBox_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) { if (Stages != null && e.NewValue != null) { var sortIndex = Stages.Max(x => x.SortIndex) ?? 1; var template = (KeyValuePair <int, string>)e.NewValue; var newStage = new ProjectStageTile((EStageTemplate)template.Key, ++sortIndex); newStage.Project = _originalProject; Stages.Add(newStage); FocusedStage = newStage; StageTemplatesPopup.ClosePopup(); } }
public void Load(ORM.ProjectInfoView project) { if (_dc != null) { _dc.Dispose(); } ; _dc = new FPMDataContext(); Stages.Clear(); var mainStage = new ProjectStageTile() { ID = -1, Name = "Основные данные", SortIndex = 0, IsPublic = true, RowState = 0, }; Stages.Add(mainStage); FocusedStage = mainStage; _project = project; _originalProject = project.ToProject(); if (_project.ID > 0) { var stages = _dc.ProjectStage .Where(x => x.RowState == Convert.ToInt16(ERowState.Active) && x.ProjectID == _project.ID && (x.IsPublic || (UserSettings.ProfileRole == ERole.Administrator) || x.ResponsibleRole == Convert.ToInt16(UserSettings.ProfileRole))) .OrderBy(x => x.SortIndex); foreach (var stage in stages) { Stages.Add(new ProjectStageTile(stage)); } ; } else { Stages.Add(new ProjectStageTile(EStageTemplate.Sketch, 1)); Stages.Add(new ProjectStageTile(EStageTemplate.Contract, 2)); Stages.Add(new ProjectStageTile(EStageTemplate.Payment, 3)); Stages.Add(new ProjectStageTile(EStageTemplate.Shipment, 4)); }; Stages.Where(x => x.Project == null).ToList().ForEach(x => x.Project = _originalProject); OnStageChanged(); isLoaded = true; }
private void AddStage_ItemClick(object sender, ItemClickEventArgs e) { var eventResult = new CancelEventArgs(); OnStageChanging(eventResult); if (!eventResult.Cancel) { int nextSortIndex = _stages.Select(x => x.SortIndex).Max() ?? 0; var newStage = new ProjectStageTile(_originalProject, ++nextSortIndex); _stages.Add(newStage); FocusedStage = newStage; } ; }