Пример #1
0
        public bool AddHoliday(HolidayDto dto)
        {
            try
            {
                if (dto == null)
                {
                    _logger.Warn("Parameter passed is null");
                    return(false);
                }

                var holiday = new Holidays()
                {
                    HolidaysId  = dto.Id,
                    Name        = dto.Name,
                    HolidayDate = dto.HolidayDate
                };

                _context.Holiday.Add(holiday);
                _context.SaveChanges();

                _logger.Info($"Holiday {dto.Name} on {dto.HolidayDate} has been successfully created");

                return(true);
            }
            catch (Exception e)
            {
                _logger.Error(e);
                return(false);
            }
        }
Пример #2
0
        public async Task Should_Save_HolidayDates_Corrently()
        {
            // arrange

            var loaderOffices = await _officeDataLoader.LoadValueAtMostAsync(10);

            var office = loaderOffices.FirstOrDefault <OfficeDtos>();

            // act
            var        holidays     = office.HolidayDates;
            var        holidaysList = holidays.ToList <HolidayDto>();
            var        prevList     = holidaysList.Count();
            HolidayDto holidayDto   = Craft_Holiday_Date(office.Codigo);

            holidaysList.Add(holidayDto);
            office.HolidayDates = holidaysList;
            var result = await _officeDataSaver.SaveAsync(office);

            Assert.IsTrue(result);
            var entity = await _officeDataLoader.LoadValueAsync(office.Codigo);

            var value = entity.HolidayDates.FirstOrDefault <HolidayDto>(x => (
                                                                            (x.FESTIVO == holidayDto.FESTIVO) &&
                                                                            (x.OFICINA == holidayDto.OFICINA) && (x.PARTE_DIA == holidayDto.PARTE_DIA) &&
                                                                            (x.HORA_DESDE == holidayDto.HORA_DESDE) &&
                                                                            (x.HORA_HASTA == holidayDto.HORA_HASTA)));
            var nextList = entity.HolidayDates.Count();

            Assert.Greater(nextList, prevList);
            Assert.NotNull(value);
        }
Пример #3
0
        public bool UpdateHoliday(HolidayDto dto)
        {
            try
            {
                if (dto == null)
                {
                    _logger.Warn("Parameter passed is null");
                    return(false);
                }

                var holiday = _context.Holiday.FirstOrDefault(x => x.HolidaysId == dto.Id);

                if (holiday == null)
                {
                    _logger.Warn($"Holiday ID {dto.Id} not found in database");
                    return(false);
                }

                holiday.Name        = dto.Name;
                holiday.HolidayDate = dto.HolidayDate;

                _context.Entry(holiday).State = EntityState.Modified;
                _context.SaveChanges();

                _logger.Info($"Holiday {dto.Name} on {dto.HolidayDate} has been updated");

                return(true);
            }
            catch (Exception e)
            {
                _logger.Error(e);
                return(false);
            }
        }
Пример #4
0
        private void OnSelectedDaysCommand(object obj)
        {
            var dictionary   = obj as IDictionary <HolidayCalendar.Status, object>;
            var holidays     = dictionary[HolidayCalendar.Status.CurrentHolidays];
            var changedValue = dictionary[HolidayCalendar.Status.ChangedValue] as Tuple <DateTime, bool>;
            var holidayDto   = new HolidayDto();

            CreateHolidayItem(ref holidayDto, changedValue.Item1, changedValue.Item2, !changedValue.Item2);
            _lastSelectedDay = holidayDto;
            if (_holidaysDates.Contains(holidayDto, new HolidayDateComparer()))
            {
                var holidayList = _holidaysDates.ToList();
                holidayList.Remove(holidayDto);
                if (!holidayDto.IsDeleted)
                {
                    holidayList.Add(holidayDto);
                }
                _holidaysDates = holidayList;
            }
            else
            {
                _holidaysDates = _holidaysDates.Union(new List <HolidayDto>()
                {
                    holidayDto
                });
            }
        }
Пример #5
0
        public HolidayDto GetHoliday(string id)
        {
            if (id == null)
            {
                _logger.Warn("null parameter passed");
                return(null);
            }

            var holiday = _context.Holiday.FirstOrDefault(x => x.HolidaysId == id);

            if (holiday == null)
            {
                _logger.Warn($"Holiday ID {id} not found in database");
                return(null);
            }

            var dto = new HolidayDto()
            {
                Id          = holiday.HolidaysId,
                Name        = holiday.Name,
                HolidayDate = holiday.HolidayDate
            };

            _logger.Info($"Holiday ID {id} found in database");

            return(dto);
        }
Пример #6
0
        public async Task <ActionResult <HolidayDto> > Post([FromBody] HolidayDto holidayDto)
        {
            var holiday = _mapper.Map <Holiday>(holidayDto);

            await _context.Holidays.AddAsync(holiday);

            await _context.SaveChangesAsync();

            var addedHolidayDto = _mapper.Map <HolidayDto>(holiday);

            return(CreatedAtAction(nameof(Get), new { id = addedHolidayDto.Id }, addedHolidayDto));
        }
Пример #7
0
        public void SetToHoliday(HolidayDto holiday)
        {
            if (holiday.Date != Date)
            {
                throw new Exception(string.Format("Holiday {0} does not have same date as {1}", holiday.Description, Date.ToShortDateString()));
            }

            _holidayDesciption = holiday.Description;
            OnPropertyChanged(() => HolidayDesciption);
            OnPropertyChanged(() => IsHoliday);
            OnPropertyChanged(() => IsWorkDay);
        }
Пример #8
0
 private void CreateHolidayItem(ref HolidayDto dto, DateTime time, bool isNew, bool isDeleted)
 {
     dto.PARTE_DIA  = _currentPartOfDay;
     dto.FESTIVO    = time;
     dto.OFICINA    = DataObject.Codigo;
     dto.HORA_DESDE = _holidayTimeSpanFrom;
     dto.HORA_HASTA = _holidayTimeSpanTo;
     dto.IsDirty    = true;
     dto.IsDeleted  = isDeleted;
     dto.IsNew      = isNew;
     dto.IsChanged  = true;
 }
Пример #9
0
 public async Task UpdateHolidayAsync(HolidayDto holiday)
 {
     try
     {
         var h = this.mapper.Map <Holiday>(holiday);
         this.dbContext.Holidays.Update(h);
         await dbContext.SaveChangesAsync();
     }
     catch (Exception)
     {
         throw;
     }
 }
Пример #10
0
        public void SetToHoliday_HolidayToSetFromHasDifferentDate_ThrowsException()
        {
            // Arrange
            var holiday = new HolidayDto {
                Date = new DateTime(2013, 1, 1), Description = "buuh"
            };
            var dateItem = new ForecastRegistrationDateColumn(new DateTime(2013, 1, 2));

            // Act
            var error = Assert.Throws <Exception>(() => dateItem.SetToHoliday(holiday));

            // Assert
            Assert.That(error.Message, Is.EqualTo("Holiday buuh does not have same date as 02-01-2013"));
        }
Пример #11
0
        /// <summary>
        ///  HolidayDto. This craft an holiday data transfer object.
        /// </summary>
        /// <returns></returns>
        private HolidayDto Craft_Holiday_Date(string oficina)
        {
            HolidayDto holidayDto = new HolidayDto();

            holidayDto.FESTIVO    = new DateTime(2018, 12, 24);
            holidayDto.HORA_DESDE = new TimeSpan(14, 0, 0);
            holidayDto.HORA_HASTA = new TimeSpan(20, 0, 0);
            holidayDto.PARTE_DIA  = 1;
            holidayDto.OFICINA    = oficina;
            holidayDto.IsDirty    = true;
            holidayDto.IsNew      = true;
            holidayDto.IsValid    = true;
            return(holidayDto);
        }
        public async Task postShouldBadRequestWhenDataIsInvalid()
        {
            // Arrange
            var newHolidayDto = new HolidayDto(null, DateTime.Now, "new_holiday", null);

            var putData = "{'Id':null,'DateTime':'2020-09-06T14:03:08.87279-03:00'}";
            var payload = new StringContent(putData, Encoding.UTF8, "application/json");

            // Act
            var response = await _client.PostAsync($"/holiday", payload);

            // Assert
            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
        }
Пример #13
0
        public void SetToHoliday_HolidayHasSameDateAsDateItem_HolidayDescriptionGetValue()
        {
            // Arrange
            var holiday = new HolidayDto {
                Date = new DateTime(2013, 1, 1), Description = "buuh"
            };
            var dateItem = new ForecastRegistrationDateColumn(new DateTime(2013, 1, 1));

            // Act
            dateItem.SetToHoliday(holiday);

            // Assert
            Assert.That(dateItem.IsHoliday, Is.True);
            Assert.That(dateItem.HolidayDesciption, Is.EqualTo("buuh"));
        }
Пример #14
0
 public IHoliday CreateHoliday(HolidayDto holidayDto)
 {
     return(holidayDto.Type switch
     {
         HolidayType.ParticularDayOfMonth =>
         new DayOfMonthHoliday(
             holidayDto.ApplicableMonth.Value,
             holidayDto.ApplicableDay.Value,
             holidayDto.OccurenceInMonth.Value),
         var x when x == HolidayType.Fixed || x == HolidayType.RollsToMonday =>
         new FixedHoliday(
             x == HolidayType.RollsToMonday,
             holidayDto.Date.Value),
         _ => throw new InvalidOperationException($"Unknown holiday type {holidayDto.Type}")
     });
Пример #15
0
        public async Task <string> CreateHolidayAsync(HolidayDto holiday)
        {
            try
            {
                var holidayModel = this.mapper.Map <Holiday>(holiday);
                await dbContext.Holidays.AddAsync(holidayModel).ConfigureAwait(false);

                await dbContext.SaveChangesAsync().ConfigureAwait(false);

                return(holiday.Id.ToString());
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #16
0
        public async Task <IActionResult> Post([FromBody] HolidayDto holiday)
        {
            try
            {
                if (holiday == null)
                {
                    return(BadRequest());
                }
                var holidayId = await this.holidaysService.CreateHolidayAsync(holiday);

                return(!string.IsNullOrWhiteSpace(holidayId) ? Ok(holidayId) : (IActionResult)NotFound());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));

                throw;
            }
        }
Пример #17
0
        public async Task <ActionResult> Put(int id, [FromBody] HolidayDto holidayDto)
        {
            if (id != holidayDto.Id)
            {
                return(BadRequest());
            }

            if (!_context.Holidays.Any(e => e.Id == id))
            {
                return(NotFound());
            }

            var holiday = _mapper.Map <Holiday>(holidayDto);

            _context.Entry(holiday).State = EntityState.Modified;

            await _context.SaveChangesAsync();

            return(NoContent());
        }
        public async Task postShouldCreateNewHoliday()
        {
            // Arrange
            var newHolidayDto = new HolidayDto(null, DateTime.Now, "new_holiday", null);

            var putData = JsonConvert.SerializeObject(newHolidayDto);
            var payload = new StringContent(putData, Encoding.UTF8, "application/json");

            // Act
            var response = await _client.PostAsync($"/holiday", payload);

            // Assert
            Assert.Equal(HttpStatusCode.Created, response.StatusCode);
            var addedHolidayDto = JsonConvert.DeserializeObject <HolidayDto>(await response.Content.ReadAsStringAsync());
            var holidayFromDb   = await _context.FindAsync <Holiday>(addedHolidayDto.Id);

            Assert.NotNull(holidayFromDb);
            Assert.Equal(addedHolidayDto.Name, holidayFromDb.Name);
            var x = response.Headers.Location.AbsolutePath; // /Holiday/765
        }
Пример #19
0
        public void HolidayFactory_ReturnsCorrectObject_WithRollsToMondayHolidayDto()
        {
            // arrange
            var dto = new HolidayDto
            {
                Type = HolidayType.RollsToMonday,
                Date = new DateTime(2020, 5, 5),
            };
            var sut = new HolidayFactory();

            // act
            var result = sut.CreateHoliday(dto);

            // assert
            Assert.IsType <FixedHoliday>(result);
            var typedResult = result as FixedHoliday;

            Assert.Equal(new DateTime(2020, 5, 5), typedResult.Date);
            Assert.True(typedResult.RollsToNextMonday);
        }
Пример #20
0
        private ForecastDateColumns CreateDateHeaders()
        {
            var dates  = GenereateDatesForMonth(4, 2013);
            var result = new ForecastDateColumns();

            foreach (var date in dates)
            {
                var newItem = new ForecastRegistrationDateColumn(date);

                // Set a couple of days to be holiday
                if (date.Day == 2 || date.Day == 3)
                {
                    var holiday = new HolidayDto {
                        Date = date, Description = "Holiday"
                    };
                    newItem.SetToHoliday(holiday);
                }
                result.Add(newItem);
            }

            return(result);
        }
Пример #21
0
        public void HolidayFactory_ReturnsCorrectObject_WithParticularDayOfMonthHolidayDto()
        {
            // arrange
            var dto = new HolidayDto
            {
                Type             = HolidayType.ParticularDayOfMonth,
                ApplicableDay    = DayOfWeek.Monday,
                ApplicableMonth  = MonthOfYear.October,
                OccurenceInMonth = 3,
            };
            var sut = new HolidayFactory();

            // act
            var result = sut.CreateHoliday(dto);

            // assert
            Assert.IsType <DayOfMonthHoliday>(result);
            var typedResult = result as DayOfMonthHoliday;

            Assert.Equal(3, typedResult.OccurenceInMonth);
            Assert.Equal(DayOfWeek.Monday, typedResult.ApplicableDay);
            Assert.Equal(MonthOfYear.October, typedResult.ApplicableMonth);
        }
Пример #22
0
        public JsonResult Update(HolidayDto dto)
        {
            OperationResult oper = _holidayContract.Update(dto);

            return(Json(oper));
        }
Пример #23
0
        public JsonResult Create(HolidayDto dto)
        {
            OperationResult oper = _holidayContract.Insert(dto);

            return(Json(oper));
        }
 public EditHolidayViewModel(HolidayDto dto)
 {
     Name        = dto.Name;
     Id          = dto.Id;
     HolidayDate = dto.HolidayDate;
 }