public EnrollmentProtocolEditorViewModel(EnrollmentProtocol protocol) { _protocol = protocol; _protocol.TrainingBeginDate = DateTime.Now; // Если протокол новый, то выставляем значения по умолчанию if (_protocol.Number == null) { // Генерируем номер и дату // Находим максимальный имеющийся номер в базе данных и в локальном кэше /*Session.DataModel.EnrollmentProtocols.Load(); * var protocolCollection = Session.DataModel.EnrollmentProtocols.Local.Where(p => p.EnrollmentOrder != null).ToList(); * * int maxNumber = 0; * if (protocolCollection.Count > 0) * { * maxNumber = (from prot in protocolCollection * select int.Parse(prot.Number.WithoutLetters())).Max(); * } * * _protocol.Number = string.Format("{0}-з", maxNumber + 1); */ _protocol.Date = DateTime.Now.Date; } // Выставляем значения фильтров конкурсной группы if (Protocol.CompetitiveGroup != null) { SelectedDirection = Protocol.Direction; } else { if (Protocol.EnrollmentOrder != null) { RefreshDirections(); } } // Формируем коллекцию заявлений в протоколе var claims = new List <Claim>(); foreach (var ec in Protocol.EnrollmentClaims.Where(ec => ec.Claim != null)) { if (!claims.Contains(ec.Claim)) { claims.Add(ec.Claim); } } ProtocolClaims = new ObservableCollection <Claim>(claims.OrderByDescending(c => c.TotalScore)); }
/// <summary> /// Перестраивает протокол, обновляя заявления в нем /// </summary> /// <param name="protocol">Протокол зачисления</param> /// <param name="claims">Коллекция заявлений</param> void RebuildEnrollmentProtocol(EnrollmentProtocol protocol, IEnumerable <Claim> claims) { // Удаляем бывшие заявления protocol.EnrollmentClaims.Clear(); // Включаем выбранные заявления в протокол foreach (var claim in claims) { var ec = new EnrollmentClaim { Claim = claim }; protocol.EnrollmentClaims.Add(ec); } }
void AddProtocol() { var protocol = new EnrollmentProtocol(); protocol.EnrollmentOrder = Order; var vm = new EnrollmentProtocolEditorViewModel(protocol); var validator = new EnrollmentProtocolValidator(protocol); if (DialogLayer.ShowEditor(EditingContent.EnrollmentProtocolEditor, vm, validator)) { protocol.EnrollmentOrder = null; Order.EnrollmentProtocols.Add(protocol); RebuildEnrollmentProtocol(protocol, vm.ProtocolClaims); RaisePropertyChanged("Protocols"); SelectedProtocol = protocol; } else { Order.EnrollmentProtocols.Remove(protocol); } }
public EnrollmentProtocolDocument(EnrollmentProtocol protocol) { _protocol = protocol; }
public EnrollmentProtocolValidator(EnrollmentProtocol protocol) { _protocol = protocol; }