Ejemplo n.º 1
0
 private static IUserLogged GetUserLogged()
 {
     if (_userLogged == null)
     {
         IHttpContextAccessor httpContextAccessor = new HttpContextAccessor();
         _userLogged = new UserLogged(httpContextAccessor);
     }
     return(_userLogged);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Return a instance of <see cref="DomainService"/>.
 /// </summary>
 /// <param name="notificationHandler">Error message handler.</param>
 /// <param name="unitOfWork">Context to commit changes.</param>
 /// <param name="userLogged">The who is logged in.</param>
 protected DomainService(INotificationHandler notificationHandler, IUnitOfWork unitOfWork, IUserLogged userLogged)
 {
     _notificationHandler = notificationHandler ?? throw new ArgumentNullException(nameof(notificationHandler));
     _unitOfWork          = unitOfWork ?? throw new ArgumentNullException(nameof(unitOfWork));
     _userLogged          = userLogged ?? throw new ArgumentNullException(nameof(userLogged));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Returna instance of <see cref="ImportCountryService"/>.
 /// </summary>
 /// <param name="notificationHandler">Handling error notification messages.</param>
 /// <param name="unitOfWork">Context to read and writing countries.</param>
 /// <param name="addCountryService">Service do add countries in database.</param>
 public ImportCountryService(INotificationHandler notificationHandler, IUnitOfWorkCore unitOfWork, IUserLogged userLogged, IAddCountryService addCountryService) : base(notificationHandler, unitOfWork, userLogged)
 {
     _addCountryService = addCountryService ?? throw new ArgumentNullException(nameof(addCountryService));
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Returna instance of <see cref="AddHolidayService"/>.
 /// </summary>
 /// <param name="notificationHandler">Handling error notification messages.</param>
 /// <param name="unitOfWork">Context to read and writing countries.</param>
 public AddHolidayService(INotificationHandler notificationHandler, IUnitOfWorkCore unitOfWork, IUserLogged userLogged) : base(notificationHandler, unitOfWork, userLogged)
 {
     _commandName = "Adicionar feriados";
     _addHolidayValidator = new AddHolidayServiceValidator();
     _addHolidayValidatorRepository = new AddHolidayServiceValidator(CountryRepository, StateRepository, HolidayRepository);
 }
Ejemplo n.º 5
0
 public PostController(IPostService postService)
 {
     this.userLogged  = new UserLogged(this);
     this.postService = postService;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Return a instance of <see cref="HolidayBaseService"/>
 /// </summary>
 /// <param name="notificationHandler">Handling error notification messages.</param>
 /// <param name="unitOfWork">Context to read and writing.</param>
 /// <param name="userLogged">User who is logged in.</param>
 public HolidayBaseService(INotificationHandler notificationHandler, IUnitOfWorkCore unitOfWork, IUserLogged userLogged) : base(notificationHandler, unitOfWork, userLogged)
 {
     _unitOfWork = unitOfWork ?? throw new ArgumentNullException(nameof(unitOfWork));
 }
Ejemplo n.º 7
0
        private static async Task <List <RuleHoliday> > GetRulesHolidaysFromCsvAsync(string[,] rulesHolidaysCsv, int start, int end, ICountryRepository countryRepository, IStateRepository stateRepository, IUserLogged userLogged)
        {
            List <RuleHoliday> rules = null;

            if (rulesHolidaysCsv != null && rulesHolidaysCsv.GetLength(0) > 0)
            {
                rules = new List <RuleHoliday>();

                try
                {
                    Guid    userId            = userLogged.GetUserId();
                    Guid    countryId         = Guid.Empty;
                    Guid?   stateId           = null;
                    Country country           = null;
                    string  stateCodePrevious = "?";

                    for (int i = start, j = end; i < j; i++)
                    {
                        var id                     = rulesHolidaysCsv[i, 0].HasValue() ? int.Parse((rulesHolidaysCsv[i, 0]).Trim()) : -1;
                        var countryCode            = rulesHolidaysCsv[i, 1].Trim();
                        var stateName              = rulesHolidaysCsv[i, 2].Trim();
                        var stateCode              = rulesHolidaysCsv[i, 3].Trim();
                        var month                  = rulesHolidaysCsv[i, 4].ToMonth();
                        var day                    = rulesHolidaysCsv[i, 5].ToDay();
                        var nativeDescription      = rulesHolidaysCsv[i, 6].Trim();
                        var alternativeDescription = rulesHolidaysCsv[i, 7].Trim();
                        var holidayType            = rulesHolidaysCsv[i, 8].Replace("  ", " ").Trim();
                        var cityName               = rulesHolidaysCsv[i, 9].Trim();
                        var cityCode               = rulesHolidaysCsv[i, 10].Trim();
                        var optional               = rulesHolidaysCsv[i, 11].HasValue();
                        var bussinessRule          = rulesHolidaysCsv[i, 12].ToLower().Trim().Replace(" ", "");
                        var comments               = rulesHolidaysCsv[i, 13].Trim();

                        if (country == null || country.CountryIsoCode3 != countryCode)
                        {
                            country   = (await countryRepository.FindAsync(c => c.CountryIsoCode3 == countryCode)).FirstOrDefault();
                            countryId = country != null ? country.Id : Guid.Empty;
                        }

                        if (stateCode.HasValue() && stateCode != stateCodePrevious)
                        {
                            stateCodePrevious = stateCode;
                            stateId           = await SetStateIdAsync(stateRepository, stateCode, countryCode);
                        }

                        HolidayType type = SetHolidayType(holidayType, cityName, stateCode);

                        comments = SetComments(holidayType, comments);

                        var ruleHoliday = RuleHoliday.CreateRuleHoliday(null, EntityStatus.Active, ActionType.Register, userId, countryId, stateId, countryCode, stateCode, cityCode, cityName, type, nativeDescription, alternativeDescription, month, day, optional, bussinessRule, comments);

                        rules.Add(ruleHoliday);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            return(rules);
        }
Ejemplo n.º 8
0
        private static List <Country> GetCountriesFromCsv(string[,] countriesCsv, int start, int end, IUserLogged userLogged)
        {
            List <Country> countries = null;

            if (countriesCsv != null && countriesCsv.GetLength(0) > 0)
            {
                countries = new List <Country>();

                try
                {
                    Guid userId = userLogged.GetUserId();

                    for (int i = start, j = end; i < j; i++)
                    {
                        string numericCode            = countriesCsv[i, 1].Trim();
                        string alphaIsoCode2          = countriesCsv[i, 2].Trim();
                        string alphaIsoCode3          = countriesCsv[i, 3].Trim();
                        string name                   = countriesCsv[i, 4].Trim();
                        string shortName              = countriesCsv[i, 5].Trim();
                        string languageCode           = countriesCsv[i, 6].Trim();
                        string regionName             = countriesCsv[i, 7].Trim();
                        string subRegionName          = countriesCsv[i, 8].Trim();
                        string intermediateRegionName = countriesCsv[i, 9].Trim();
                        int    regionCode             = countriesCsv[i, 10].HasValue() ? int.Parse(countriesCsv[i, 10].Trim()) : 0;
                        int    subRegionCode          = countriesCsv[i, 11].HasValue() ? int.Parse(countriesCsv[i, 11].Trim()) : 0;
                        int    intermediateRegionCode = countriesCsv[i, 12].HasValue() ? int.Parse(countriesCsv[i, 12].Trim()) : 0;
                        string pathCountryImage       = null;

                        var country = Country.CreateCountry(null, EntityStatus.Active, ActionType.Register, userId, numericCode, alphaIsoCode2, alphaIsoCode3, name, shortName, languageCode, regionName, subRegionName, intermediateRegionName, regionCode, subRegionCode, intermediateRegionCode, pathCountryImage);
                        countries.Add(country);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            return(countries);
        }
Ejemplo n.º 9
0
        private static async Task <List <State> > GetStatesFromCsvAsync(string[,] statesCsv, int start, int end, ICountryRepository countryRepository, IUserLogged userLogged)
        {
            List <State> states = null;

            if (statesCsv != null && statesCsv.GetLength(0) > 0)
            {
                states = new List <State>();

                try
                {
                    Guid    userId    = userLogged.GetUserId();
                    Guid    countryId = Guid.Empty;
                    Country country   = null;

                    for (int i = start, j = end; i < j; i++)
                    {
                        string countryIsoCode = statesCsv[i, 1].Trim();
                        string stateIsoCode   = statesCsv[i, 2].Trim();
                        string name           = statesCsv[i, 3].Trim();
                        string pathStateImage = null;

                        if (country == null || country.CountryIsoCode3 != countryIsoCode)
                        {
                            country   = (await countryRepository.FindAsync(c => c.CountryIsoCode3 == countryIsoCode)).FirstOrDefault();
                            countryId = country != null ? country.Id : Guid.Empty;
                        }

                        var state = State.CreateState(null, EntityStatus.Active, ActionType.Register, userId, countryId, countryIsoCode, stateIsoCode, name, pathStateImage);
                        states.Add(state);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            return(states);
        }
Ejemplo n.º 10
0
 public CommentController(ICommentService commentService)
 {
     this.commentService = commentService;
     this.userLogged = new UserLogged(this);
 }
Ejemplo n.º 11
0
        internal static List <List <Holiday> > ToHolidayList(this List <RuleHoliday> rulesHolidays, INotificationHandler notificationHandler, int year, IUserLogged userLogged)
        {
            List <List <Holiday> > list = new List <List <Holiday> >();

            if (rulesHolidays != null && rulesHolidays.Count() > 0)
            {
                List <Holiday> holidays;
                int            items        = rulesHolidays.Count();
                const int      itemsPerList = 64;
                int            tasks        = 1;
                int            start;
                int            end = items;

                if (items > itemsPerList)
                {
                    tasks = (items / itemsPerList) + 1;
                    end   = itemsPerList;
                }

                for (start = 0; tasks > 0; tasks--)
                {
                    holidays = GetHolidaysFromRules(notificationHandler, rulesHolidays, start, end, year, userLogged);
                    list.Add(holidays);

                    start = end;
                    end   = (end + itemsPerList) > items ? items : (end += itemsPerList);
                }
            }

            return(list);
        }
Ejemplo n.º 12
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);
        }
Ejemplo n.º 13
0
 protected QueryBaseService(INotificationHandler notificationHandler, IUnitOfWorkCore unitOfWork, IUserLogged userLogged, IAddHolidayService addHolidayService) : base(notificationHandler, unitOfWork, userLogged)
 {
     _addHolidayService = addHolidayService ?? throw new ArgumentNullException(nameof(addHolidayService));
 }
Ejemplo n.º 14
0
 public UserController(IUserService userService)
 {
     this.userService = userService;
     this.userLogged  = new UserLogged(this);
 }
Ejemplo n.º 15
0
 public QueryHolidaysByMonth(INotificationHandler notificationHandler, IUnitOfWorkCore unitOfWork, IUserLogged userLogged, IAddHolidayService addHolidayService) : base(notificationHandler, unitOfWork, userLogged, addHolidayService)
 {
     _getHolidaysByMonthRequestValidator = new GetHolidaysByMonthRequestValidator(unitOfWork.CountryRepository, unitOfWork.StateRepository);
 }
Ejemplo n.º 16
0
        /// <summary>
        /// This method maps the content to a list of rule holidays lists.
        /// </summary>
        /// <param name="content">The content read from a CSV file.</param>
        /// <param name="countryRepository">For country search.</param>
        /// <param name="stateRepository">For state search.</param>
        /// <param name="userLogged">The who is logged in.</param>
        /// <returns>Returns a list of rule holidays lists.</returns>
        internal static async Task <List <List <RuleHoliday> > > ToListOfRuleHolidayListAsync(this string[,] content, ICountryRepository countryRepository, IStateRepository stateRepository, IUserLogged userLogged)
        {
            List <List <RuleHoliday> > list = new List <List <RuleHoliday> >();

            if (content != null)
            {
                List <RuleHoliday> rules;
                int items = content.GetLength(0);
                if (items > 0)
                {
                    const int itemsPerList = 64;
                    int       tasks        = 1;
                    int       start;
                    int       end = items;

                    if (items > itemsPerList)
                    {
                        tasks = (items / itemsPerList) + 1;
                        end   = itemsPerList;
                    }

                    for (start = 0; tasks > 0; tasks--)
                    {
                        rules = await Task.Run(() => GetRulesHolidaysFromCsvAsync(content, start, end, countryRepository, stateRepository, userLogged));

                        list.Add(rules);

                        start = end;
                        end   = (end + itemsPerList) > items ? items : (end += itemsPerList);
                    }
                }
            }

            return(list);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// This method maps the content to a list of country lists.
        /// </summary>
        /// <param name="content">The content read from a CSV file.</param>
        /// <param name="userLogged">The who is logged in.</param>
        /// <returns>Returns a list of country lists.</returns>
        internal static async Task <List <List <Country> > > ToListOfCountryListAsync(this string[,] content, IUserLogged userLogged)
        {
            List <List <Country> > list = new List <List <Country> >();

            if (content != null)
            {
                List <Country> countries;
                int            items = content.GetLength(0);
                if (items > 0)
                {
                    const int itemsPerList = 64;
                    int       tasks        = 1;
                    int       start;
                    int       end = items;

                    if (items > itemsPerList)
                    {
                        tasks = (items / itemsPerList) + 1;
                        end   = itemsPerList;
                    }

                    for (start = 0; tasks > 0; tasks--)
                    {
                        countries = await Task.Run(() => GetCountriesFromCsv(content, start, end, userLogged));

                        list.Add(countries);

                        start = end;
                        end   = (end + itemsPerList) > items ? items : (end += itemsPerList);
                    }
                }
            }

            return(list);
        }