示例#1
0
        public void CreateHoliday_MustCreateInstaceOfHoliday(string id, string status, string typeProcess, string user, string country, string state, string date, string type, bool optional, string nativeDescription, string alternativeDescription, string countryCode, string stateCode, string cityName, string cityCode)
        {
            // Arrange
            Holiday      holiday;
            Guid         entityId     = string.IsNullOrEmpty(id) ? Guid.Empty : Guid.Parse(id);
            EntityStatus entityStatus = EntityStatus.GetByName(status);
            ActionType   action       = ActionType.GetByName(typeProcess);
            Guid         userId       = string.IsNullOrEmpty(user) ? Guid.Empty : Guid.Parse(user);
            Guid         countryId    = string.IsNullOrEmpty(country) ? Guid.Empty : Guid.Parse(country);
            Guid         stateId      = string.IsNullOrEmpty(state) ? Guid.Empty : Guid.Parse(state);
            DateTime     holidayDate  = DateTime.Parse(date);
            HolidayType  holidayType  = HolidayType.GetByName(type);

            // Act
            holiday = Holiday.CreateHoliday(entityId, entityStatus, action, userId, countryId, stateId, holidayDate, holidayType, optional, nativeDescription, alternativeDescription, countryCode, stateCode, cityName, cityCode);

            // Assert
            Assert.NotNull(holiday);
            Assert.True(holiday.Id != entityId &&
                        holiday.Status == entityStatus &&
                        holiday.Action == action &&
                        (holiday.RegisteredBy == userId || holiday.ModifiedBy == userId) &&
                        holiday.CountryId == countryId &&
                        holiday.StateId == stateId &&
                        holiday.HolidayDate == holidayDate &&
                        holiday.HolidayType == holidayType &&
                        holiday.Optional == optional &&
                        holiday.NativeDescription == nativeDescription &&
                        holiday.AlternativeDescription == alternativeDescription &&
                        holiday.CountryCode == countryCode &&
                        holiday.StateCode == stateCode &&
                        holiday.CityName == cityName &&
                        holiday.CityCode == cityCode);
        }
示例#2
0
        private static List <Holiday> GetHolidaysFromRules(INotificationHandler notificationHandler, List <RuleHoliday> rulesHolidays, int start, int end, int year, IUserLogged userLogged)
        {
            List <Holiday> holidays = null;

            if (rulesHolidays != null && rulesHolidays.Count() > 0)
            {
                holidays = new List <Holiday>();

                try
                {
                    Guid        userId      = userLogged.GetUserId();
                    RuleHoliday ruleHoliday = null;
                    DateTime?   holidayDate = null;

                    for (int i = start, j = end; i < j; i++)
                    {
                        ruleHoliday = rulesHolidays[i];
                        holidayDate = null;

                        if (ruleHoliday.BussinessRule.HasValue())
                        {
                            if (!ApplyBusinessRuleForDate(notificationHandler, ruleHoliday, year, out holidayDate))
                            {
                                ApplyBusinessRuleForTime(notificationHandler, ruleHoliday, year, out holidayDate);
                            }
                        }
                        else
                        {
                            if (ruleHoliday.Month.HasValue && ruleHoliday.Day.HasValue)
                            {
                                holidayDate = new DateTime(year, ruleHoliday.Month.Value, ruleHoliday.Day.Value);
                            }
                        }

                        if (holidayDate == null)
                        {
                            var notification = new DomainNotification(ruleHoliday.Id.ToString(), $"O feriado {ruleHoliday.NativeHolidayName} do {ruleHoliday.CountryIsoCode} não tem data.");
                            notificationHandler.NotifyError(notification);
                        }
                        else
                        {
                            var holiday = Holiday.CreateHoliday(null, EntityStatus.Active, ActionType.Register, userId, ruleHoliday.CountryId, ruleHoliday.StateId, holidayDate.Value, ruleHoliday.HolidayType, ruleHoliday.Optional, ruleHoliday.NativeHolidayName, ruleHoliday.EnglishHolidayName, ruleHoliday.CountryIsoCode, ruleHoliday.StateIsoCode, ruleHoliday.CityName, ruleHoliday.CityCode);
                            holidays.Add(holiday);
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            return(holidays);
        }
示例#3
0
        public void EqualsCore_RulesMustBeEquals_False()
        {
            // Arrange
            Holiday holidayA, holidayB;

            // Act
            holidayA = Holiday.CreateHoliday(null, EntityStatus.Active, ActionType.Register, Guid.Parse("41408960-a65f-42ea-93c0-e320a1bc7060"), Guid.Parse("41408960-a65f-42ea-93c0-e320a1bc7060"), Guid.Parse("41408960-a65f-42ea-93c0-e320a1bc7080"), DateTime.Parse("2020/10/04"), HolidayType.Local, false, "Native Description", "alternativeDescription", "BRA", "RJ", "Rio de Janeiro", "3304557");
            holidayB = Holiday.CreateHoliday(null, EntityStatus.Active, ActionType.Register, Guid.Parse("41408960-a65f-42ea-93c0-e320a1bc7060"), Guid.Parse("41408960-a65f-42ea-93c0-e320a1bc7060"), Guid.Parse("41408960-a65f-42ea-93c0-e320a1bc8070"), DateTime.Parse("2020/10/04"), HolidayType.Local, false, "Native Description", "alternativeDescription", "BRA", "RJ", "Rio de Janeiro", "3304557");

            // Assert
            Assert.NotEqual(holidayA, holidayB);
            Assert.True(holidayA != holidayB);
        }