コード例 #1
0
        public ParityOfTheWeekModel GenerateDataOfTheWeek(DateTimeOffset dateTimeOffsetParam)
        {
            try
            {
                var dateTimeOffsetRequest = dateTimeOffsetParam;

                var parityOfTheWeekModel = new ParityOfTheWeekModel
                {
                    DateTimeRequest   = dateTimeOffsetRequest,
                    ParityOfWeekToday = GetParityOfTheWeekByDateTime(dateTimeOffsetRequest),
                    ParityOfWeekCount = GetCountParityOfWeek(dateTimeOffsetRequest),
                    PartOfSemester    = GetPartOfSemester(dateTimeOffsetRequest),
                    NumberOfSemester  = GetNumberOfSemester(dateTimeOffsetRequest, _parityOfTheWeekConfigurationModel.StartLearningYear),
                    DayOfName         = new CultureInfo("ru-RU").DateTimeFormat.GetDayName(dateTimeOffsetRequest.DayOfWeek),
                    StatusDay         = GetStatusDay(dateTimeOffsetRequest)
                };

                return(parityOfTheWeekModel);
            }
            catch (Exception ex)
            {
                //log
                throw new NotSupportedException($"Ошибка во время выполнения. {ex}");
            }
        }
コード例 #2
0
        public void GenerateDataOfTheWeek_ReturnsCorrectModel_ShouldBeReturns_ParityOfTheWeekModel()
        {
            // Arrange
            var fixture = new Fixture();

            fixture.Customize(new AutoMoqCustomization());

            var mapper = fixture.Freeze <Mock <IMapper> >();
            var parityOfTheWeekConfigurationModel = fixture.Freeze <Mock <ParityOfTheWeekConfigurationModel> >();

            var dateTimeTest = new DateTime(2018, 11, 11);

            var expectedModel = new ParityOfTheWeekModel
            {
                DateTimeRequest   = dateTimeTest,
                DayOfName         = "воскресенье",
                NumberOfSemester  = 5,
                ParityOfWeekCount = 10,
                ParityOfWeekToday = true,
                PartOfSemester    = 1
            };

            // Act
            var service = new ParityOfTheWeekService(mapper.Object, parityOfTheWeekConfigurationModel.Object);
            var result  = service.GenerateDataOfTheWeek(dateTimeTest);

            // Assert
            Assert.AreEqual(expectedModel.DateTimeRequest, result.DateTimeRequest);
        }
コード例 #3
0
        public ParityOfTheWeekViewModel PrepareParityOfTheWeekViewModel(ParityOfTheWeekModel input)
        {
            var resultViewModel = _mapper.Map <ParityOfTheWeekViewModel>(input);

            resultViewModel.ParityOfWeekToday = input.ParityOfWeekToday ? "Чётная" : "Нечётная";
            resultViewModel.DateTimeRequest   = input.DateTimeRequest.ToString("D");

            return(resultViewModel);
        }
コード例 #4
0
        public void GenerateDataOfTheWeek_ParityOfTheWeekModel_ReturnsExpectedValue(
            DateTime dateTime,
            IOptions <ParityOfTheWeekConfigurationModel> parityOfTheWeekConfigurationModel,
            ParityOfTheWeekModel expected)
        {
            // Arrange
            var dateTimeTest = dateTime;

            // Act
            var service = new ParityOfTheWeekService(parityOfTheWeekConfigurationModel, _mapper);
            var result  = service.GenerateDataOfTheWeek(dateTimeTest);

            _testOutputHelper.WriteLine(result.ToJson());
            _testOutputHelper.WriteLine(expected.ToJson());
            var isCompare = Compare(result, expected);

            // Assert
            Assert.True(isCompare);
        }
コード例 #5
0
        public void PrepareViewModel_ViewModel_ReturnsExpectedValue(
            IOptions <ParityOfTheWeekConfigurationModel> parityOfTheWeekConfigurationModel,
            ParityOfTheWeekModel parityOfTheWeekModelParam,
            ParityOfTheWeekViewModel expected
            )
        {
            // Arrange
            var parityOfTheWeekModel = parityOfTheWeekModelParam;

            // Act
            var service = new ParityOfTheWeekService(parityOfTheWeekConfigurationModel, _mapper);
            var result  = service.PrepareViewModel(parityOfTheWeekModel);

            _testOutputHelper.WriteLine(result.ToJson());
            _testOutputHelper.WriteLine(expected.ToJson());
            var isCompare = Compare(result, expected);

            // Assert
            Assert.True(isCompare);
        }
コード例 #6
0
        public ParityOfTheWeekViewModel PrepareViewModel(ParityOfTheWeekModel input)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            var resultViewModel = _mapper.Map <ParityOfTheWeekViewModel>(input);

            resultViewModel.ParityOfWeekToday = input.ParityOfWeekToday ? "Чётная" : "Нечётная";
            resultViewModel.DateTimeRequest   = input.DateTimeRequest.ToString("D", new CultureInfo("ru-RU"));
            resultViewModel.StatusDay         = input.StatusDay.Humanize();
            resultViewModel.IsParity          = input.ParityOfWeekToday;
            // тестовый вариант
            resultViewModel.SelectedDateStringValue = input.DateTimeRequest.Date
                                                      == DateTimeOffset.UtcNow.Date ? "Сегодня" : "Выбрано";
            //

            return(resultViewModel);
        }
コード例 #7
0
        public ParityOfTheWeekModel GenerateDataOfTheWeek(DateTime timeNowParam)
        {
            if (timeNowParam == null)
            {
                throw new NotSupportedException($"{typeof(DateTime)} timeNowParam равен null");
            }

            var timeNow = timeNowParam;

            var parityOfTheWeekModel = new ParityOfTheWeekModel
            {
                DateTimeRequest   = timeNow,
                ParityOfWeekToday = GetParityOfTheWeekByDateTime(timeNow),
                ParityOfWeekCount = GetCountParityOfWeek(timeNow),
                PartOfSemester    = GetPartOfSemester(timeNow),
                NumberOfSemester  = GetNumberOfSemester(timeNow, _config.StartLearningYear),
                DayOfName         = CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(timeNow.DayOfWeek)
            };



            return(parityOfTheWeekModel);
        }