示例#1
0
        public override async void OnActivityCreated(Bundle savedInstanceState)
        {
            base.OnActivityCreated(savedInstanceState);
            _account = AccountStore
                       .Create(Context)
                       .FindAccountsForService(GetString(Resource.String.app_name))
                       .FirstOrDefault();
            _noClubEvents = View.FindViewById <TextView>(Resource.Id.tv_clubEvent_noClubEvents);

            if (_account.Properties["roles"].Contains(Role.Coach.ToString()))
            {
                FloatingActionButton goToCreateClubEventButton = View.FindViewById <FloatingActionButton>(Resource.Id.btn_clubEvent_goToCreateClubEvent);
                goToCreateClubEventButton.BringToFront();
                goToCreateClubEventButton.Click     += GoToCreateClubEventButton_Click;
                goToCreateClubEventButton.Visibility = ViewStates.Visible;
            }

            HttpResponseMessage clubHttpResponse = await RestManager.GetMemberClub(_account.Username);

            string clubResponse = await clubHttpResponse.Content.ReadAsStringAsync();

            if (clubResponse != "null")
            {
                _clubDetails            = JsonConvert.DeserializeObject <ClubDetails>(clubResponse);
                _clubEventFilterRequest = new ClubEventFilterRequest
                {
                    MemberId = int.Parse(_account.Properties["memberId"]),
                    ClubId   = _clubDetails.Id
                };

                HttpResponseMessage httpResponse = await RestManager.GetClubEvents(_clubEventFilterRequest);

                string response = await httpResponse.Content.ReadAsStringAsync();

                _clubEvents = JsonConvert.DeserializeObject <IEnumerable <ClubEventFilterResult> >(response);

                if (_clubEvents.Any())
                {
                    _timeSpans = View.FindViewById <Spinner>(Resource.Id.spn_clubEvent_timeSpan);
                    var timeSpans = Enum.GetNames(typeof(EventTimeSpan))
                                    .Select(r => Literals.ResourceManager.GetString(r)).ToArray();
                    _timeSpans.Adapter       = new ArrayAdapter <string>(Context, Android.Resource.Layout.SimpleSpinnerDropDownItem, timeSpans);
                    _timeSpans.ItemSelected += TimeSpans_ItemSelected;

                    _eventsFilter            = View.FindViewById <LinearLayout>(Resource.Id.ll_clubEvent_clubEventsFilter);
                    _eventsFilter.Visibility = ViewStates.Visible;

                    _adapter      = new ClubEventAdapter(Activity, _clubEvents.ToArray(), _clubDetails, _account);
                    _recyclerView = View.FindViewById <RecyclerView>(Resource.Id.rv_clubEvent_clubEvents);
                    _recyclerView.SetAdapter(_adapter);
                    _layoutManager = new LinearLayoutManager(Activity, LinearLayoutManager.Vertical, false);
                    _recyclerView.SetLayoutManager(_layoutManager);
                }
                else
                {
                    _noClubEvents.Visibility = ViewStates.Visible;
                }
            }
        }
示例#2
0
        public static async Task <HttpResponseMessage> GetClubEvents(ClubEventFilterRequest clubEventFilterRequest)
        {
            var builder = new UriBuilder(ApiConstants.GetClubEventsEndpoint)
            {
                Query = BuildQueryString(clubEventFilterRequest)
            };

            return(await _httpClient.GetAsync(builder.ToString()));
        }
示例#3
0
        public IEnumerable <ClubEvent> GetClubEvents(ClubEventFilterRequest filterRequest)
        {
            var events = _dbContext.ClubEvents.Where(ce =>
                                                     !ce.IsDeleted &&
                                                     ce.StartTime > DateTime.Now &&
                                                     ce.InvitedMembers.Any(im =>
                                                                           im.MemberId == filterRequest.MemberId &&
                                                                           ce.Club.Id == filterRequest.ClubId));

            if (!events.Any())
            {
                return(events);
            }

            switch (filterRequest.EventTimeSpan)
            {
            case EventTimeSpan.ForToday:
                events = events.Where(e => e.StartTime.DayOfYear == DateTime.Now.DayOfYear);
                break;

            case EventTimeSpan.ForTheWeek:
                var weekNow = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(
                    DateTime.Now,
                    CalendarWeekRule.FirstDay,
                    DayOfWeek.Monday);
                events = events.Where(e => CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(
                                          e.StartTime,
                                          CalendarWeekRule.FirstDay,
                                          DayOfWeek.Monday) == weekNow);
                break;

            case EventTimeSpan.ForTheMonth:
                events = events.Where(e => e.StartTime.Month == DateTime.Now.Month);
                break;

            default:
                break;
            }

            return(events);
        }
示例#4
0
        public IEnumerable <ClubEventFilterResult> GetClubEvents(ClubEventFilterRequest clubEventFilterRequest)
        {
            IEnumerable <ClubEvent> clubEvents = _clubEventsRepository.GetClubEvents(clubEventFilterRequest);

            if (!clubEvents.Any())
            {
                return(new List <ClubEventFilterResult>());
            }

            return(clubEvents.Select(ce => new ClubEventFilterResult
            {
                Id = ce.Id,
                Title = ce.Title,
                Description = ce.Description,
                EventType = ce.EventType,
                StartTime = ce.StartTime,
                Coordinates = new ClubEventCoordinates
                {
                    Latitude = ce.Latitude,
                    Longtitute = ce.Longtitude
                }
            }));
        }
示例#5
0
 public IActionResult GetEvents([FromQuery] ClubEventFilterRequest clubEventFilterRequest)
 {
     return(Json(_clubEventsService.GetClubEvents(clubEventFilterRequest)));
 }