Пример #1
0
        private static ControllerResponse BuildGenericResponse(string message)
        {
            ControllerResponse response = new ControllerResponse();

            response.Message = message;
            return(response);
        }
Пример #2
0
        public async void testCreateUser()
        {
            var client = _factory.CreateClient();

            var user = new CreateUserDto
            {
                email    = _email,
                password = _password,
                userName = _userName
            };
            var userResponse = new GetUserDto
            {
                email    = user.email,
                userName = user.userName
            };
            var expectedResponse = new ControllerResponse <GetUserDto>
            {
                success = true,
                data    = userResponse
            };

            // Act
            var actualResponse = await client.testSuccessPostAsync <GetUserDto, CreateUserDto>("/api/users", user);

            // Assert
            expectedResponse.ShouldDeepEqual(actualResponse);
        }
Пример #3
0
        private IActionResult MakeMessage(ActionContext context)
        {
            var x = new ValidationProblemDetails(context.ModelState);
            var errorMessageBuilder = new StringBuilder();

            errorMessageBuilder.Append("Model Validation error! ");
            foreach (var error in x.Errors)
            {
                errorMessageBuilder.Append(error.Key);
                errorMessageBuilder.Append(": ");
                foreach (var errorMessage in error.Value)
                {
                    errorMessageBuilder.Append(errorMessage);
                    errorMessageBuilder.Append("  ");
                }
            }

            var result = new ControllerResponse()
            {
                Successful = false,
                Message    = errorMessageBuilder.ToString()
            };

            return(new BadRequestObjectResult(result));
        }
Пример #4
0
        void ExecuteCommand(string from, string subject, string body)
        {
            if (!subject.Equals("команда", StringComparison.InvariantCultureIgnoreCase))
            {
                log.Error("Получено письмо, не являющееся командой. Тема письма: " + subject);
                return;
            }
            if (body.Length > 100)
            {
                log.Error("Полученная команда слишком длинная, длина " + body.Length);
                return;
            }
            body = body.Trim();
            log.Info("Команда: " + body);

            ControllerResponse response = new ControllerResponse();

            glContext.RemoteProcessor.ExecuteRemoteCommand(body, response);

            log.Info("Готовим отправку результата выполнения команды");

            SendMail mailSender = new SendMail(settings);

            mailSender.SendSimple($"результат выполнения команды '{body}'",
                                  response.ResposneBody, response.Attachments);
        }
Пример #5
0
        public static ControllerResponse CreateBadResponse(string message)
        {
            ControllerResponse response = BuildGenericResponse(message);

            response.Success = false;
            return(response);
        }
        private ControllerResponseResult ProcessControllerResponse(ControllerResponse response, IDIResolver resolver)
        {
            if (response == null)
                return ControllerResponseResult.Default;

            _controllerResponseBuilder.BuildControllerResponseProperties(response, resolver);

            return response.Process();
        }
Пример #7
0
		private ControllerResponseResult ProcessControllerResponse(ControllerResponse response, IDIContainerProvider containerProvider)
		{
			if (response == null)
				return ControllerResponseResult.Default;

			_controllerResponseBuilder.BuildControllerResponseProperties(response, containerProvider);

			return response.Process();
		}
Пример #8
0
 public ControllerResponse AddNewProfession([FromBody] string professionName)
 {
     if (string.IsNullOrWhiteSpace(professionName))
     {
         return(ControllerResponse.Warning(""));
     }
     _adminServices.AddNewProfession(professionName);
     return(ControllerResponse.Ok());
 }
Пример #9
0
        public ControllerResponse <string> DeleteDoctor([FromBody] DoctorForDeletingDto doctorForDeletingDto)
        {
            if (!doctorForDeletingDto.DoctorId.ValidationId() && doctorForDeletingDto.DateOfDismissal == default)
            {
                return(ControllerResponse <string> .Warning("Запрос не был правильно сформирован, повторите попытку"));
            }

            return(ControllerResponse <string> .Ok(_adminServices.DismissDoctor(doctorForDeletingDto.DoctorId, doctorForDeletingDto.DateOfDismissal).ToString("D")));
        }
Пример #10
0
 public ControllerResponse DisapproveDoctor([FromBody] int doctorId)
 {
     if (!doctorId.ValidationId())
     {
         return(ControllerResponse.Warning("Запрос не был правильно сформирован, повторите попытку"));
     }
     _adminServices.DisapproveDoctor(doctorId);
     return(ControllerResponse.Ok());
 }
Пример #11
0
        public ControllerResponse ChangeDoctorSchedule([FromBody] ScheduleFullDto scheduleToRender)
        {
            if (!AdminValidator.ValidateScheduleForUpdating(scheduleToRender))
            {
                return(ControllerResponse.Warning("Данные были не введены или введены не полностью, повторите запрос"));
            }

            _adminServices.UpdateSchedule(new ScheduleWithDateTransfer(scheduleToRender));
            return(ControllerResponse.Ok());
        }
Пример #12
0
        private Task HandleExceptionAsync(HttpContext context, Exception exception)
        {
            context.Response.ContentType = "application/json";

            var response = exception is WarningException
                ? ControllerResponse.Warning(exception.Message)
                : ControllerResponse.Exception(ExceptionMessages.Error);

            return(context.Response.WriteAsync(JsonConvert.SerializeObject(response)));
        }
        public ControllerResponse <ProfessionDto> GetProfessionByDoctorId(int doctorId)
        {
            if (!doctorId.ValidationId())
            {
                return(ControllerResponse <ProfessionDto> .Warning(
                           "Произошел сбой. Проверьте правильность введенных данных и повторите запрос"));
            }

            return(ControllerResponse <ProfessionDto> .Ok(new ProfessionDto(_commonServices.GetProfessionByDoctorId(doctorId))));
        }
        public ControllerResponse <IEnumerable <DoctorDto> > GetAllDoctorsByProfession(int professionId)
        {
            if (!professionId.ValidationId())
            {
                return(ControllerResponse <IEnumerable <DoctorDto> > .Warning(
                           "Профессия врача указана некорректно или произошел сбой, повторите запрос"));
            }

            return(ControllerResponse <IEnumerable <DoctorDto> > .Ok(_commonServices
                                                                     .GetDoctorsByProfession(professionId).Select(d => new DoctorDto(d))));
        }
Пример #15
0
        private ControllerResponseResult ProcessControllerResponse(ControllerResponse response, IDIContainerProvider containerProvider)
        {
            if (response == null)
            {
                return(ControllerResponseResult.Default);
            }

            _controllerResponseBuilder.BuildControllerResponseProperties(response, containerProvider);

            return(response.Process());
        }
        public ControllerResponse <IEnumerable <KeyValuePair <TimeSpan, SessionViewModel> > > GetSessionsByDoctorAndDate(int doctorId, DateTime dateTime)
        {
            if (!UserValidator.ValidateDoctorAndDateToGetting(doctorId,
                                                              dateTime))
            {
                return(ControllerResponse <IEnumerable <KeyValuePair <TimeSpan, SessionViewModel> > > .Warning(
                           "Доктор или дата приема не указаны или указаны неверно, повторите запрос"));
            }

            return(ControllerResponse <IEnumerable <KeyValuePair <TimeSpan, SessionViewModel> > > .Ok(_commonServices
                                                                                                      .GetSessionsByDoctorIdAndDate(doctorId,
                                                                                                                                    dateTime)
                                                                                                      .Select(kvp => new KeyValuePair <TimeSpan, SessionViewModel>(kvp.Key, SessionViewModel.ConvertToSessionViewModel(kvp.Value)))));
        }
 public ControllerResponse <IEnumerable <ScheduleFullDto> > GetAllActualSchedules(DateTime dateNow)
 {
     return(ControllerResponse <IEnumerable <ScheduleFullDto> > .Ok(_commonServices
                                                                    .GetAllActualSchedules(dateNow).Select(s => new ScheduleFullDto
     {
         DoctorId = s.DoctorId,
         ActualisationDate = s.ActualisationDate,
         Monday = new WorkDayDto(_commonServices.GetWorkDayById(s.MondayId)),
         Tuesday = new WorkDayDto(_commonServices.GetWorkDayById(s.TuesdayId)),
         Wednesday = new WorkDayDto(_commonServices.GetWorkDayById(s.WednesdayId)),
         Thursday = new WorkDayDto(_commonServices.GetWorkDayById(s.ThursdayId)),
         Friday = new WorkDayDto(_commonServices.GetWorkDayById(s.FridayId))
     })));
 }
Пример #18
0
        public ControllerResponse AddOrUpdateSchedule([FromBody] ScheduleDto scheduleToRender)
        {
            var doctorId = 0;

            if (User.Identity.IsAuthenticated)
            {
                doctorId = int.Parse(User.Claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value);
            }

            if (!scheduleToRender.ValidateScheduleToUpdating())
            {
                return(ControllerResponse.Warning("Данные были не введены или введены не полностью, повторите запрос"));
            }
            _doctorServices.UpdateSchedule(new ScheduleWithDateTransfer(scheduleToRender, doctorId));
            return(ControllerResponse.Ok());
        }
Пример #19
0
        public ControllerResponse AddProfession([FromBody] int professionId)
        {
            var doctorId = 0;

            if (User.Identity.IsAuthenticated)
            {
                doctorId = int.Parse(User.Claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value);
            }

            if (!professionId.ValidationId())
            {
                return(ControllerResponse.Warning("Данные не были введены, повторите запрос"));
            }
            _doctorServices.AddProfession(doctorId, professionId);
            return(ControllerResponse.Ok());
        }
Пример #20
0
        public override void Execute(GlobalContext glContext, ControllerResponse response)
        {
            log.Info("Запрошена отправка логов");
            if (response == null)
            {
                log.Error("Передан неверный параметр в функцию Execute");
                return;
            }

            var files = Directory.EnumerateFiles(glContext.LogsDirFull);

            response.Attachments.AddRange(files);

            response.ResposneBody = $"К письму приложено {response.Attachments.Count} файла(ов) с логами\n";

            log.Info("  логи подготовлены к отправке");
        }
Пример #21
0
        public ControllerResponse UnreserveSession([FromBody] int sessionId)
        {
            var userId = 0;

            if (User.Identity.IsAuthenticated)
            {
                userId = int.Parse(User.Claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value);
            }
            if (!UserValidator.ValidateSessionToCancel(sessionId, userId))
            {
                return(ControllerResponse.Warning(
                           "Произошел сбой. Проверьте корректность введенных данных и повторите запрос"));
            }

            _userServices.CancelSession(sessionId, userId);
            return(ControllerResponse.Ok());
        }
Пример #22
0
        public async Task <ControllerResponse> LogIn([FromBody] UserToLogInDto userDto)
        {
            if (!AuthorisationValidator.ValidateUserToLogIn(userDto))
            {
                return(ControllerResponse.Warning(
                           "Данные не введены полностью. Уточните данные запроса и повторите попытку"));
            }

            var user   = _authorizationServices.LogIn(userDto.Login, userDto.Password.GetPasswordHash());
            var claims = new List <Claim>
            {
                new Claim(ClaimsIdentity.DefaultNameClaimType, user.Name),
                new Claim(ClaimsIdentity.DefaultRoleClaimType, user.Role.ToString()),
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())
            };
            var id        = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
            var principal = new ClaimsPrincipal(id);
            await HttpContext.SignInAsync(principal);

            return(ControllerResponse.Ok());
        }
Пример #23
0
        public void ExecuteRemoteCommand(string command, ControllerResponse response)
        {
            command = command.Trim().ToLowerInvariant();
            if (!commands.ContainsKey(command))
            {
                log.Error($"команда {command} не найдена");

                StringBuilder sb = new StringBuilder($"команда {command} не найдена, список:");
                foreach (var k in commands.Keys)
                {
                    sb.Append("  ");
                    sb.Append(k);
                    sb.Append(" - ");
                    sb.AppendLine(commands[k].Description);
                }
                response.ResposneBody = (sb.ToString());
                return;
            }


            commands[command].Execute(glContext, response);
        }
        public ControllerResponse <ScheduleFullDto> GetDoctorSchedule(int doctorId)
        {
            if (!doctorId.ValidationId())
            {
                return(ControllerResponse <ScheduleFullDto> .Warning(
                           "Произошел сбой. Проверьте правильность введенных данных и повторите запрос"));
            }

            var schedule = _commonServices.GetScheduleOnDate(doctorId, DateTime.Today);

            return(ControllerResponse <ScheduleFullDto> .Ok(
                       new ScheduleFullDto
            {
                ActualisationDate = schedule.ActualisationDate,
                Monday = WorkDayDto.GetWorkDayDto(_commonServices.GetWorkDayById(schedule.MondayId)),
                Tuesday = WorkDayDto.GetWorkDayDto(_commonServices.GetWorkDayById(schedule.TuesdayId)),
                Wednesday = WorkDayDto.GetWorkDayDto(_commonServices.GetWorkDayById(schedule.WednesdayId)),
                Thursday = WorkDayDto.GetWorkDayDto(_commonServices.GetWorkDayById(schedule.ThursdayId)),
                Friday = WorkDayDto.GetWorkDayDto(_commonServices.GetWorkDayById(schedule.FridayId)),
                Saturday = WorkDayDto.GetWorkDayDto(_commonServices.GetWorkDayById(schedule.SaturdayId)),
                Sunday = WorkDayDto.GetWorkDayDto(_commonServices.GetWorkDayById(schedule.SundayId))
            }));
        }
Пример #25
0
        public ControllerResponse <int> ReserveSession([FromBody] SessionForReservingDto sessionDto)
        {
            var userId = 0;

            if (User.Identity.IsAuthenticated)
            {
                userId = int.Parse(User.Claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value);
            }
            if (!UserValidator.ValidateSessionToReserve(sessionDto, userId))
            {
                return(ControllerResponse <int> .Warning(
                           "Произошел сбой. Проверьте корректность введенных данных и повторите запрос"));
            }

            if (!UserValidator.ValidateTimeForReserving(sessionDto))
            {
                return(ControllerResponse <int> .Warning(
                           "Время для записи некорректно, выберете корректную дату для записи"));
            }

            return(ControllerResponse <int> .Ok(_userServices.ReserveSession(sessionDto.Date,
                                                                             TimeSpan.Parse(sessionDto.TimeOfBeginSession), sessionDto.DoctorId, userId)));
        }
Пример #26
0
        public async Task <ControllerResponse> SignInUser([FromBody] UserToSignInDto userDto)
        {
            if (!AuthorisationValidator.ValidateUserToSignIn(userDto))
            {
                return(ControllerResponse.Warning(
                           "Введенные данные некорректны, введите все данные и повторите запрос"));
            }

            var user = userDto.IsDoctor
                ? _authorizationServices.SignInDoctor(userDto.Name, userDto.Login, userDto.Password.GetPasswordHash())
                : _authorizationServices.SignInUser(userDto.Name, userDto.Login, userDto.Password.GetPasswordHash());

            var claims = new List <Claim>
            {
                new Claim(ClaimsIdentity.DefaultNameClaimType, user.Name),
                new Claim(ClaimsIdentity.DefaultRoleClaimType, user.Role.ToString()),
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())
            };
            var id        = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
            var principal = new ClaimsPrincipal(id);
            await HttpContext.SignInAsync(principal);

            return(ControllerResponse.Ok());
        }
Пример #27
0
 public override void Execute(GlobalContext glContext, ControllerResponse response)
 {
 }
Пример #28
0
        /// <summary>
        /// Builds the controller response properties.
        /// </summary>
        /// <param name="controllerResponse">The controller response.</param>
        /// <param name="resolver">The DI container resolver.</param>
        public void BuildControllerResponseProperties(ControllerResponse controllerResponse, IDIResolver resolver)
        {
            BuildActionModulesAccessorProperties(controllerResponse, resolver);

            controllerResponse.ResponseWriter = resolver.Resolve <IResponseWriter>();
        }
Пример #29
0
 public abstract void Execute(GlobalContext glContext, ControllerResponse response);
        /// <summary>
        /// Builds the controller response properties.
        /// </summary>
        /// <param name="controllerResponse">The controller response.</param>
        /// <param name="containerProvider">The DI container provider.</param>
        public void BuildControllerResponseProperties(ControllerResponse controllerResponse, IDIContainerProvider containerProvider)
        {
            BuildActionModulesAccessorProperties(controllerResponse, containerProvider);

            controllerResponse.ResponseWriter = containerProvider.Resolve <IResponseWriter>();
        }
 public ControllerResponse <IEnumerable <ProfessionDto> > GetAllProfessions()
 {
     return(ControllerResponse <IEnumerable <ProfessionDto> > .Ok(_commonServices.GetAllProfessions()
                                                                  .Select(p => new ProfessionDto(p))));
 }
		/// <summary>
		/// Builds the controller response properties.
		/// </summary>
		/// <param name="controllerResponse">The controller response.</param>
		/// <param name="containerProvider">The DI container provider.</param>
		public void BuildControllerResponseProperties(ControllerResponse controllerResponse, IDIContainerProvider containerProvider)
		{
			BuildActionModulesAccessorProperties(controllerResponse, containerProvider);

			controllerResponse.ResponseWriter = containerProvider.Resolve<IResponseWriter>();
		}