コード例 #1
0
 /// <summary>
 /// Удаление записи
 /// </summary>
 /// <param name="decree">Удаляемая запись</param>
 public void DeleteDecree(Decree decree)
 {
     logger.Trace("Попытка подключения к источнику данных.");
     logger.Trace("Подготовка к удалению приказа.");
     try
     {
         var decreeToDelete = context.Decree.FirstOrDefault(d => d.DecreeId == decree.DecreeId);
         if (decreeToDelete != null)
         {
             context.Decree.Remove(decreeToDelete);
             context.SaveChanges();
             logger.Debug("Удаление успешно завершено.");
         }
     }
     catch (SqlException sqlEx)
     {
         logger.Error("Ошибка удаления записи приказа.");
         logger.Error($"Ошибка SQL Server — {sqlEx.Number}.");
         logger.Error($"Сообщение об ошибке: {sqlEx.Message}.");
     }
     catch (Exception ex)
     {
         logger.Error("Ошибка удаления записи приказа.");
         logger.Error($"Ошибка — {ex.Message}.");
     }
 }
コード例 #2
0
        public async Task <ActionResult> Create([Bind(Include = "DecreeId,DateSigning,DateArrival,DateEviction,StudentsId,RoomsId,HousingId")] Decree decree)
        {
            string login     = User.Identity.Name;
            var    HousingId = db.Users.Where(u => u.Login == login).Select(s => s.HousingId).FirstOrDefault();

            var IdRomsAdd = db.Rooms.Where(r => r.RoomsId == decree.RoomsId).Where(h => h.HousingId == HousingId).FirstOrDefault();

            var IdRoomsD = db.Decree.Where(s => s.StudentsId == decree.StudentsId).OrderByDescending(s => s.DecreeId).FirstOrDefault();
            var IdRomsS  = db.Rooms.Where(r => r.RoomsId == IdRoomsD.RoomsId).Where(h => h.HousingId == HousingId).FirstOrDefault();

            if (ModelState.IsValid)
            {
                IdRomsS.NumberSeatsFree   = IdRomsS.NumberSeatsFree + 1;
                IdRomsAdd.NumberSeatsFree = IdRomsAdd.NumberSeatsFree - 1;
                db.Decree.Add(decree);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.RoomsId    = new SelectList(db.Rooms, "RoomsId", "RoomsId", decree.RoomsId);
            ViewBag.StudentsId = new SelectList(db.Students, "StudentsId", "Surname", decree.StudentsId);
            ViewBag.HousingId  = new SelectList(db.Housing, "HousingId", "HousingId", decree.HousingId);
            return(View(decree));
        }
コード例 #3
0
 /// <summary>
 /// Добавление записи
 /// </summary>
 /// <param name="decree">Новая запись приказа</param>
 /// <returns>Добавленная запись</returns>
 public Decree InsertDecree(Decree decree)
 {
     logger.Trace("Попытка подключения к источнику данных.");
     logger.Trace("Подготовка к добавлению приказа.");
     try
     {
         logger.Debug($"Добавляемая запись {decree.ToString()}");
         context.Decree.Add(decree);
         context.SaveChanges();
         logger.Debug($"Запись успешно добавлена.");
         return(decree);
     }
     catch (SqlException sqlEx)
     {
         logger.Error("Ошибка добавления приказа.");
         logger.Error($"Ошибка SQL Server — {sqlEx.Number}.");
         logger.Error($"Сообщение об ошибке: {sqlEx.Message}.");
         return(null);
     }
     catch (Exception ex)
     {
         logger.Error("Ошибка добавления приказа.");
         logger.Error($"Ошибка — {ex.Message}.");
         return(null);
     }
 }
コード例 #4
0
 /// <summary>
 /// Обновление записи
 /// </summary>
 /// <param name="decree">Редактируемая запись приказа</param>
 /// <returns>Отредактированная запись</returns>
 public Decree UpdateDecree(Decree decree)
 {
     logger.Trace("Попытка подключения к источнику данных.");
     logger.Trace("Подготовка к обновлению приказа.");
     try
     {
         var decreeToUpdate = context.Decree.FirstOrDefault(d => d.DecreeId == decree.DecreeId);
         logger.Debug($"Текущая запись {decreeToUpdate.ToString()}");
         decreeToUpdate.DecreeNumber   = decree.DecreeNumber;
         decreeToUpdate.DecreeDate     = decree.DecreeDate;
         decreeToUpdate.Content        = decree.Content;
         decreeToUpdate.ProtocolNumber = decree.ProtocolNumber;
         decreeToUpdate.ProtocolDate   = decree.ProtocolDate;
         context.SaveChanges();
         logger.Debug($"Новая запись {decreeToUpdate.ToString()}");
         return(decreeToUpdate);
     }
     catch (SqlException sqlEx)
     {
         logger.Error("Ошибка редактирования приказа.");
         logger.Error($"Ошибка SQL Server — {sqlEx.Number}.");
         logger.Error($"Сообщение об ошибке: {sqlEx.Message}.");
         return(null);
     }
     catch (Exception ex)
     {
         logger.Error("Ошибка редактирования приказа.");
         logger.Error($"Ошибка — {ex.Message}.");
         return(null);
     }
 }
コード例 #5
0
 public void DeleteDecree(Decree decree)
 {
     if (decree != null)
     {
         _context.Decrees.Remove(decree);
         _context.SaveChanges();
     }
 }
コード例 #6
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            Decree decree = await db.Decree.FindAsync(id);

            db.Decree.Remove(decree);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
コード例 #7
0
 /// <summary>
 /// Обработчик выбора приказа
 /// </summary>
 /// <param name="sender">Выпадающий список приказов</param>
 /// <param name="e"></param>
 private void cbDecree_SelectedValueChanged(object sender, EventArgs e)
 {
     // Если список приказов не пуст
     // Получаем уникальный идентификатор выбранного приказа
     // Получаем приказ по уникальному идентификатору
     if (cbDecree.SelectedValue != null)
     {
         int id = (int)cbDecree.SelectedValue;
         decree = decreeService.GetDecree(id);
     }
 }
コード例 #8
0
 public async Task SaveDecree(Decree decree)
 {
     if (decree.DecreeId == 0)
     {
         _context.Decrees.Add(decree);
     }
     else
     {
         _context.Entry(decree).State = EntityState.Modified;
     }
     await _context.SaveChangesAsync();
 }
コード例 #9
0
        public async ValueTask <PassDecreeResponse> PassDecreeAsync(string key, int clock, int index, string value)
        {
            var processClock = await _store.GetOrCreateAsync(ClockKey, a => { return(Task.FromResult(0)); });

            Book book = await _store.GetOrCreateAsync(key, a => { return(Task.FromResult(new Book())); });

            var decrees = book.Decrees;

            var response = new PassDecreeResponse()
            {
                Index         = index,
                MaxIndexSoFar = decrees.Count - 1
            };

            response.Clock = clock;

            if (decrees.Count >= index + 1)
            {
                if (decrees[index] != null)
                {
                    response.Value = decrees[index].SubjectValue;
                }
                else
                {
                    response.Value = value;
                    decrees[index] = new Decree()
                    {
                        Committed    = false,
                        SubjectValue = value
                    };
                }
            }
            else
            {
                response.Value = value;

                for (int i = decrees.Count - 1; i < index - 1; i++)
                {
                    decrees.Add(null);
                }

                decrees.Add(new Decree()
                {
                    Committed    = false,
                    SubjectValue = value
                });
            }

            _store.Set(ClockKey, Math.Max(clock, processClock) + 1);

            return(response);
        }
コード例 #10
0
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Decree decree = await db.Decree.FindAsync(id);

            if (decree == null)
            {
                return(HttpNotFound());
            }
            return(View(decree));
        }
コード例 #11
0
        /// <summary>
        /// Метод инициализации списка приказов
        /// </summary>
        private void InitializeDecreeComboBox()
        {
            // Отключаем отслеживание изменения приказа
            cbDecree.SelectedValueChanged -= cbDecree_SelectedValueChanged;
            // Получаем список приказов
            var decrees = decreeService.GetDecrees();

            // Заполняем комбо-бокс
            cbDecree.DataSource    = decrees;
            cbDecree.DisplayMember = "DecreeNumber";
            cbDecree.ValueMember   = "DecreeId";
            // Если список приказов не пуст
            // Устанавливаем выбранный приказ первым элементом списка
            if (decrees.Count != 0)
            {
                decree = decrees[0];
            }
            // Включаем отслеживание изменения приказа
            cbDecree.SelectedValueChanged += cbDecree_SelectedValueChanged;
        }
コード例 #12
0
        public async ValueTask <bool> CommitDecreeAsync(string key, int index, string value)
        {
            var book = await _store.GetOrCreateAsync(key, a => { return(Task.FromResult(new Book())); });

            var decrees = book.Decrees;

            if (decrees.Count < index + 1)
            {
                for (int i = decrees.Count - 1; i < index - 1; i++)
                {
                    decrees.Add(null);
                }

                decrees.Add(new Decree()
                {
                    Committed    = true,
                    SubjectValue = value
                });
            }
            else
            {
                decrees[index] = new Decree()
                {
                    Committed    = true,
                    SubjectValue = value
                };
            }

            if (index > book.LatestCommittedIndex)
            {
                book.LatestCommittedIndex = index;
            }

            book.LatestCommittedValue = decrees[book.LatestCommittedIndex].SubjectValue;

            return(await Task.FromResult(true));
        }
コード例 #13
0
 /// <summary>
 /// Получение списка абитуриентов
 /// </summary>
 /// <param name="decree">Приказ</param>
 /// <returns>Список абитуриентов</returns>
 public List <Enrollee> GetEnrollees(Decree decree)
 {
     logger.Trace("Попытка подключения к источнику данных.");
     logger.Trace("Подготовка к поиску списка абитуриентов, зачисленных по выбранному приказу.");
     try
     {
         var enrollees = context.Enrollee.AsNoTracking().Where(e => e.DecreeId == decree.DecreeId).ToList();
         logger.Debug($"Поиск окончен. Количество записей: {enrollees.Count}.");
         return(enrollees);
     }
     catch (SqlException sqlEx)
     {
         logger.Error("Ошибка получения списка зачисленных абитуриентов.");
         logger.Error($"Ошибка SQL Server — {sqlEx.Number}.");
         logger.Error($"Сообщение об ошибке: {sqlEx.Message}.");
         return(null);
     }
     catch (Exception ex)
     {
         logger.Error("Ошибка получения списка зачисленных абитуриентов.");
         logger.Error($"Ошибка — {ex.Message}.");
         return(null);
     }
 }