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));
        }
Exemple #2
0
        /// <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);
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
 public EnrollmentProtocolDocument(EnrollmentProtocol protocol)
 {
     _protocol = protocol;
 }
Exemple #5
0
 public EnrollmentProtocolValidator(EnrollmentProtocol protocol)
 {
     _protocol = protocol;
 }