private static IUserLogged GetUserLogged() { if (_userLogged == null) { IHttpContextAccessor httpContextAccessor = new HttpContextAccessor(); _userLogged = new UserLogged(httpContextAccessor); } return(_userLogged); }
/// <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)); }
/// <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)); }
/// <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); }
public PostController(IPostService postService) { this.userLogged = new UserLogged(this); this.postService = postService; }
/// <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)); }
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); }
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); }
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); }
public CommentController(ICommentService commentService) { this.commentService = commentService; this.userLogged = new UserLogged(this); }
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); }
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); }
protected QueryBaseService(INotificationHandler notificationHandler, IUnitOfWorkCore unitOfWork, IUserLogged userLogged, IAddHolidayService addHolidayService) : base(notificationHandler, unitOfWork, userLogged) { _addHolidayService = addHolidayService ?? throw new ArgumentNullException(nameof(addHolidayService)); }
public UserController(IUserService userService) { this.userService = userService; this.userLogged = new UserLogged(this); }
public QueryHolidaysByMonth(INotificationHandler notificationHandler, IUnitOfWorkCore unitOfWork, IUserLogged userLogged, IAddHolidayService addHolidayService) : base(notificationHandler, unitOfWork, userLogged, addHolidayService) { _getHolidaysByMonthRequestValidator = new GetHolidaysByMonthRequestValidator(unitOfWork.CountryRepository, unitOfWork.StateRepository); }
/// <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); }
/// <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); }