Example #1
0
        /// <summary>
        /// Подробные сведения об абитуриенте
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public async Task <IActionResult> Details(string userName, string mode)
        {
            ViewBag.IsUserConsultant = User.IsInRole("Приёмная комиссия (консультанты)") ? true : false;

            var abiturient = await _abiturRepository.GetAbiturientAsync(userName);

            switch (mode)
            {
            // Режим изменения даты и времени регистрации абитуриента
            case "ChangeAbiturRegisterDateTime":
                ViewBag.Mode = mode;
                break;

            // Режим сохранения изменения даты и времени регистрации абитуриента
            case "ChangeAbiturRegisterDateTimeSave":
                string   abiturRegisterDateTimeString = HttpContext.Request.Query["RegisterDateTime"];
                DateTime abiturRegisterDateTime;
                if (DateTime.TryParse(abiturRegisterDateTimeString, out abiturRegisterDateTime))
                {
                    await _abiturRepository.SetAbiturientRegisterDateTimeAsync(abiturient, abiturRegisterDateTime);

                    return(RedirectToAction(nameof(Details), new { userName }));
                }
                break;

            // Режим изменения статуса абитуриента
            case "ChangeAbiturStatus":
                ViewBag.Mode = mode;
                ViewBag.AbiturientStatuses = _selectListRepository.GetSelectListAbiturientStatuses(abiturient.AbiturientStatusId);
                break;

            // Режим сохранения изменения статуса абитуриента
            case "ChangeAbiturStatusSave":
                string abiturientStatusIdString = HttpContext.Request.Query["AbiturientStatusId"];
                int    abiturientStatusId;
                if (int.TryParse(abiturientStatusIdString, out abiturientStatusId))
                {
                    await _abiturRepository.SetAbiturientStatusAsync(abiturient, (AbiturientStatusEnum)abiturientStatusId);

                    return(RedirectToAction(nameof(Details), new { userName }));
                }
                break;

            // Режим изменения номера группы для прохождения вступительных испытаний
            case "ChangeEntranceTestGroupId":
                ViewBag.Mode = mode;
                ViewBag.AbiturientStatuses = _selectListRepository.GetSelectListAbiturientStatuses(abiturient.AbiturientStatusId);
                break;

            // Режим сохранения изменения номера группы для прохождения вступительных испытаний
            case "ChangeEntranceTestGroupIdSave":
                string entranceTestGroupIdString = HttpContext.Request.Query["EntranceTestGroupId"];
                int    entranceTestGroupId;
                if (int.TryParse(entranceTestGroupIdString, out entranceTestGroupId))
                {
                    await _abiturRepository.SetAbiturientEntranceTestGroupIdAsync(abiturient, entranceTestGroupId);

                    return(RedirectToAction(nameof(Details), new { userName }));
                }
                else
                {
                    await _abiturRepository.SetAbiturientEntranceTestGroupIdAsync(abiturient, null);

                    return(RedirectToAction(nameof(Details), new { userName }));
                }

            // Режим добавления сотрудника-консультанта
            case "ChangeAppUserAbiturientConsultant":
                ViewBag.Mode = mode;
                ViewBag.AppUserAbiturientConsultants = await _selectListRepository.GetSelectListAppUserAbiturientConsultantsAsync();

                break;

            // Режим сохранения сотрудника-консультанта
            case "ChangeAppUserAbiturientConsultantSave":
                string appUserAbiturientConsultantId = HttpContext.Request.Query["AppUserAbiturientConsultantId"];
                await _abiturRepository.SetAppUserAbiturientConsultantAsync(abiturient, appUserAbiturientConsultantId);

                return(RedirectToAction(nameof(Details), new { userName }));

            // Режим изменения способа подачи документов
            case "ChangeSubmittingDocumentsType":
                ViewBag.Mode = mode;
                ViewBag.SubmittingDocumentsTypes = _selectListRepository.GetSubmittingDocumentsTypes(abiturient.SubmittingDocumentsTypeId);
                break;

            // Режим сохранения изменения способа подачи документов
            case "ChangeSubmittingDocumentsTypeSave":
                string submittingDocumentsTypeIdString = HttpContext.Request.Query["SubmittingDocumentsTypeId"];
                int    submittingDocumentsTypeId;
                if (int.TryParse(submittingDocumentsTypeIdString, out submittingDocumentsTypeId))
                {
                    await _abiturRepository.SetAbiturientSubmittingDocumentsTypeAsync(abiturient, submittingDocumentsTypeId);

                    return(RedirectToAction(nameof(Details), new { userName }));
                }
                break;

            // Режим изменения наличия оригинала документа об образовании
            case "ChangeIsEduDocumentOriginal":
                ViewBag.Mode = mode;
                //ViewBag.AbiturientStatuses = _selectListRepository.GetSelectListAbiturientStatuses(abiturient.AbiturientStatusId);
                break;

            // Режим сохранения изменения наличия оригинала документа об образовании
            case "ChangeIsEduDocumentOriginalSave":
                string isEduDocumentOriginalString = HttpContext.Request.Query["IsEduDocumentOriginal"];
                if (isEduDocumentOriginalString.Contains("true,false"))
                {
                    await _abiturRepository.SetIsEduDocumentOriginalAsync(abiturient, true);
                }
                else if (isEduDocumentOriginalString.Contains("false"))
                {
                    await _abiturRepository.SetIsEduDocumentOriginalAsync(abiturient, false);
                }
                //int abiturientStatusId;
                //if (int.TryParse(abiturientStatusIdString, out abiturientStatusId))
                //{
                //    await _abiturRepository.SetAbiturientStatusAsync(abiturient, (AbiturientStatusEnum)abiturientStatusId);
                //    return RedirectToAction(nameof(Details), new { userName });
                //}
                break;

            default:
                break;
            }

            return(View(abiturient));
        }