public async Task <IList <xDTO.State> > GetAllPagesStatesAsync( string sort = null) { List <IFilterCriterion> filterCriteria = new List <IFilterCriterion>(); IPageDataRequest pageDataRequest = new PageDataRequest(filterCriteria: filterCriteria, sort: sort, page: 1, pageSize: 100); return(await GetAllPageDataResultsAsync(pageDataRequest, GetStatesAsync)); }
public async Task <IHttpCallResultCGHT <IPageDataT <IList <xDTO.Country> > > > GetCountriesAsync( string sort = null, int page = 1, int pageSize = 100) { List <IFilterCriterion> filterCriteria = new List <IFilterCriterion>(); IPageDataRequest pageDataRequest = new PageDataRequest(filterCriteria: filterCriteria, sort: sort, page: page, pageSize: pageSize); return(await GetCountriesAsync(pageDataRequest)); }
public override async Task <IList <City> > GetCities(Guid stateId) { var stopwatch = Stopwatch.StartNew(); List <City> retVal = new List <City>(); IList <IFilterCriterion> filter = new List <IFilterCriterion>() { new FilterCriterion() { FieldName = nameof(xDTO.City.StateId), FilterOperator = Constants.OPERATOR_ISEQUALTO, Value = stateId } }; IPageDataRequest pageDataRequest = new PageDataRequest() { Page = 1, FilterCriteria = filter, PageSize = 100, Sort = nameof(City.Name) }; var callResult = await DataService.GetCitiesAsync(pageDataRequest); while (callResult.IsSuccessStatusCode) { var pageData = callResult.Data; retVal.AddRange(pageData.Data.Select(x => new City() { Name = x.Name, CityId = x.CityId })); if (pageDataRequest.Page >= pageData.TotalPages) { break; } else { pageDataRequest.Page++; // Get the next page. callResult = await DataService.GetCitiesAsync(pageDataRequest); } } if (!callResult.IsSuccessStatusCode) { Log.LogWarning(exception: callResult.Exception, message: "Failure occurred while retrieving city data from the API service. StatusCode: {StatusCode} RequestUri: {RequestUri}", callResult.StatusCode, callResult.RequestUri); } stopwatch.Stop(); Log.LogInformation("Executed {ClassName}.{MethodName} in {Elapsed} Milliseconds", nameof(CitySelectorApiService), MethodBase.GetCurrentMethod().Name, stopwatch.Elapsed.TotalMilliseconds); return(retVal); }
public async Task <IHttpCallResultCGHT <IPageDataT <List <BingoInstance> > > > GetInstancesAndEventsByMeetingId(Guid meetingId, DateTime?minUpdatedDate, bool?isDeleted, string sort = null, int page = 1, int pageSize = 100) { List <IFilterCriterion> filterCriteria = new List <IFilterCriterion>(); IFilterCriterion filterCriterion = new FilterCriterion { FieldName = nameof(BingoInstance.MeetingId), FieldType = "Guid", FilterOperator = Constants.OPERATOR_ISEQUALTO, Value = meetingId }; filterCriteria.Add(filterCriterion); if (minUpdatedDate.HasValue) { filterCriterion = new FilterCriterion { FieldName = nameof(BingoInstance.UpdatedDate), FieldType = "DateTime?", FilterOperator = Constants.OPERATOR_ISGREATERTHAN, Value = minUpdatedDate }; filterCriteria.Add(filterCriterion); } if (minUpdatedDate.HasValue) { filterCriterion = new FilterCriterion { FieldName = nameof(BingoInstance.IsDeleted), FieldType = "bool?", FilterOperator = Constants.OPERATOR_ISEQUALTO, Value = isDeleted }; filterCriteria.Add(filterCriterion); } IPageDataRequest pageDataRequest = new PageDataRequest(filterCriteria: filterCriteria, sort: sort, page: page, pageSize: pageSize); List <string> filter = BuildFilter(pageDataRequest.FilterCriteria); return(await SerializationHelper.Instance.SerializeCallResultsGet <List <BingoInstance> >(Log, GetClient(), $"{ExecutionContext.BaseWebApiUrl}GetInstancesAndEventsByMeetingId", filter, page : pageDataRequest.Page, pageSize : pageDataRequest.PageSize)); }
public async Task <IList <xDTO.User> > GetAllPagesUsersAsync( DateTime?minUpdatedDate = null, string sort = null) { List <IFilterCriterion> filterCriteria = new List <IFilterCriterion>(); if (minUpdatedDate.HasValue) { IFilterCriterion filterCriterion = new FilterCriterion(); filterCriterion.FieldName = "UpdatedDate"; filterCriterion.FieldType = "DateTime?"; filterCriterion.FilterOperator = "IsGreaterThan"; filterCriterion.Value = minUpdatedDate; filterCriteria.Add(filterCriterion); } IPageDataRequest pageDataRequest = new PageDataRequest(filterCriteria: filterCriteria, sort: sort, page: 1, pageSize: 100); return(await GetAllPageDataResultsAsync(pageDataRequest, GetUsersAsync)); }
public async Task <IHttpCallResultCGHT <IPageDataT <IList <xDTO.Resource> > > > GetResourcesAsync( DateTime?minUpdatedDate = null, string sort = null, int page = 1, int pageSize = 100) { List <IFilterCriterion> filterCriteria = new List <IFilterCriterion>(); if (minUpdatedDate.HasValue) { IFilterCriterion filterCriterion = new FilterCriterion(); filterCriterion.FieldName = "UpdatedDate"; filterCriterion.FieldType = "DateTime?"; filterCriterion.FilterOperator = "IsGreaterThan"; filterCriterion.Value = minUpdatedDate; filterCriteria.Add(filterCriterion); } IPageDataRequest pageDataRequest = new PageDataRequest(filterCriteria: filterCriteria, sort: sort, page: page, pageSize: pageSize); return(await GetResourcesAsync(pageDataRequest)); }
public async Task InsertAllDataCleanLocalDB(Guid userId) { try { //we want all of the bingo contents records var bingoContents = await _webAPIDataService.GetAllPagesBingoContentsAsync(null); int numBingoContentsInserted = await _asyncConnection.InsertAllAsync(bingoContents.Select(x => x.ToModelData()).ToList()); _log.Debug($"Inserted {numBingoContentsInserted} bingo contents records", LogMessageType.Instance.Info_Synchronization); //Load Types var notificationMethodTypes = await _webAPIDataService.GetAllPagesNotificationMethodTypesAsync(); int numNotificationMethodTypesInserted = await _asyncConnection.InsertAllAsync(notificationMethodTypes.Select(x => x.ToModelData()).ToList()); _log.Debug($"Inserted {numNotificationMethodTypesInserted} notification method type records", LogMessageType.Instance.Info_Synchronization); var bingoFrequencyTypes = await _webAPIDataService.GetAllPagesFrequencyTypesAsync(); int numBingoFrequencyTypesInserted = await _asyncConnection.InsertAllAsync(bingoFrequencyTypes.Select(x => x.ToModelData()).ToList()); _log.Debug($"Inserted {numBingoFrequencyTypesInserted} bingo frequency type records", LogMessageType.Instance.Info_Synchronization); var bingoInstanceEventTypes = await _webAPIDataService.GetAllPagesBingoInstanceEventTypesAsync(); int numBingoInstanceEventTypesInserted = await _asyncConnection.InsertAllAsync(bingoInstanceEventTypes.Select(x => x.ToModelData()).ToList()); _log.Debug($"Inserted {numBingoInstanceEventTypesInserted} bingo instance event type records", LogMessageType.Instance.Info_Synchronization); //load All Users - will get rid of this when there is better support for companies var bingoPlayers = await _webAPIDataService.GetAllPagesUsersAsync(); int numBingoPlayersInserted = await _asyncConnection.InsertAllAsync(bingoPlayers.Select(x => x.ToModelData()).ToList()); _log.Debug($"Inserted {numBingoPlayersInserted} bingo player records", LogMessageType.Instance.Info_Synchronization); //we only want meetings for which our user is involved var meetingAndAttendeesPageData = await _webAPIDataService.GetMeetingsAndAttendeesByUserId(userId, null, null); if (meetingAndAttendeesPageData.IsSuccessStatusCode) { List <DTO.BB.Meeting> meetingsAndAttendees = meetingAndAttendeesPageData.Data.Data; //not inserting children here, only meetings int numMeetingsInserted = await _asyncConnection.InsertAllAsync(meetingsAndAttendees.Select(x => x.ToModelData()).ToList()); _log.Debug($"Inserted {numMeetingsInserted} meeting records", LogMessageType.Instance.Info_Synchronization); //inserting meeting attendees List <DTO.BB.MeetingAttendee> attendeesDTO = meetingsAndAttendees.SelectMany(x => x.MeetingAttendees).Distinct().ToList(); int numMeetingAttendeesInserted = await _asyncConnection.InsertAllAsync(attendeesDTO.Select(v => v.ToModelData()).Distinct().ToList()); _log.Debug($"Inserted {numMeetingAttendeesInserted} meeting attendee records", LogMessageType.Instance.Info_Synchronization); //insert or update the users List <DTO.BB.User> usersDTO = attendeesDTO.Select(x => x.User_UserId).Distinct(new ModelData.Extensions.UserSameUser()).ToList(); var usersModelData = usersDTO.Select(x => x.ToModelData()).ToList(); int numUsersInserted = 0; foreach (var u in usersModelData) { if (1 == await _asyncConnection.InsertOrReplaceAsync(u)) { numUsersInserted++; } } _log.Debug($"Inserted {numUsersInserted} user records", LogMessageType.Instance.Info_Synchronization); //insert or update the instances var instances = meetingsAndAttendees.SelectMany(x => x.BingoInstances).ToList(); int numInstancesInserted = await _asyncConnection.InsertAllAsync(instances.Select(x => x.ToModelData()).ToList()); _log.Debug($"Inserted {numInstancesInserted} instance records", LogMessageType.Instance.Info_Synchronization); foreach (var instance in instances) { IList <IFilterCriterion> filterCriteria = new List <IFilterCriterion>() { new FilterCriterion() { FieldName = nameof(DTO.BB.BingoInstanceContent.BingoInstanceId), FieldType = "Guid", FilterOperator = cghConstants.OPERATOR_ISEQUALTO, Value = instance.BingoInstanceId } }; PageDataRequest pdr = new PageDataRequest(filterCriteria); var instanceContentPageData = await _webAPIDataService.GetBingoInstanceContentsAsync(pdr); if (instanceContentPageData.IsSuccessStatusCode) { //bingo instance contents var bingoInstanceContents = instanceContentPageData.Data.Data; int numBingoInstanceContentsInserted = await _asyncConnection.InsertAllAsync(bingoInstanceContents.Select(x => x.ToModelData()).ToList()); _log.Debug($"Inserted {numBingoInstanceContentsInserted} bingo instance contents records", LogMessageType.Instance.Info_Synchronization); //bingo instance events var bingoInstanceEvents = bingoInstanceContents.SelectMany(x => x.BingoInstanceEvents).Distinct().ToList(); int numBingoInstanceEventsInserted = await _asyncConnection.InsertAllAsync(bingoInstanceEvents.Select(x => x.ToModelData()).ToList()); _log.Debug($"Inserted {numBingoInstanceEventsInserted} bingo instance event records", LogMessageType.Instance.Info_Synchronization); } } } //just load all companies for right now... might not even need these at all var bingoCompanies = await _webAPIDataService.GetAllPagesCompaniesAsync(null); int numBingoCompaniesInserted = await _asyncConnection.InsertAllAsync(bingoCompanies.Select(x => x.ToModelData()).ToList()); _log.Debug($"Inserted {numBingoCompaniesInserted} bingo company records", LogMessageType.Instance.Info_Synchronization); /*var meetingSchedules = await _webAPIDataService.GetAllPagesMeetingSchedulesAsync(null); * int numMeetingSchedulesInserted = await _asyncConnection.InsertAllAsync(meetingSchedules.Select(x => x.ToModelData()).ToList()); * _log.Debug($"Inserted {numMeetingSchedulesInserted} meeting schedule records", LogMessageType.Instance.Info_Synchronization); * * var notificationRules = await _webAPIDataService.GetAllPagesNotificationRulesAsync(); * int numNotificationRulesInserted = await _asyncConnection.InsertAllAsync(notificationRules.Select(x => x.ToModelData()).ToList()); * _log.Debug($"Inserted {numNotificationRulesInserted} notification rule records", LogMessageType.Instance.Info_Synchronization); * * var recurrenceRules = await _webAPIDataService.GetAllPagesRecurrenceRulesAsync(); * int numRecurrenceRulesInserted = await _asyncConnection.InsertAllAsync(recurrenceRules.Select(x => x.ToModelData()).ToList()); * _log.Debug($"Inserted {numRecurrenceRulesInserted} recurrence rule records", LogMessageType.Instance.Info_Synchronization); */ } catch (Exception ex) { _log.Error("DataLoadService: Loading Error", LogMessageType.Instance.Exception_Synchronization, ex: ex); } }