예제 #1
0
        /// <inheritdoc />
        /// <summary>
        /// Change acceptance
        /// </summary>
        /// <param name="eventId"></param>
        /// <param name="memberId"></param>
        /// <param name="acceptance"></param>
        /// <returns></returns>
        public async Task <ResultModel> ChangeMemberEventAcceptanceAsync(Guid?eventId, Guid?memberId, EventAcceptance acceptance = EventAcceptance.Tentative)
        {
            var evtRequest = await GetEventByIdAsync(eventId);

            if (!evtRequest.IsSuccess)
            {
                return(evtRequest.ToBase());
            }

            var memberState = evtRequest.Result.EventMembers.FirstOrDefault(x => x.UserId.Equals(memberId));

            if (memberState == null)
            {
                return(new ResultModel
                {
                    Errors = new List <IErrorModel> {
                        new ErrorModel(string.Empty, "Member not allowed")
                    }
                });
            }

            memberState.Acceptance = acceptance;
            _context.EventMembers.Update(memberState);
            var dbResultRequest = await _context.PushAsync();

            if (!dbResultRequest.IsSuccess)
            {
                return(dbResultRequest);
            }
            var e = evtRequest.Result;

            CalendarEvents.SystemCalendarEvents.UserChangeAcceptance(new UserChangeAcceptanceEventArgs
            {
                Title           = e.Title,
                EventId         = e.Id,
                Member          = memberState,
                AcceptanceState = acceptance.ToString(),
                Organizer       = e.Organizer
            });
            return(dbResultRequest);
        }
예제 #2
0
 public async Task <JsonResult> ChangeMemberEventAcceptance(Guid?eventId, Guid?memberId, EventAcceptance acceptance = EventAcceptance.Tentative)
 {
     return(Json(await _calendarManager.ChangeMemberEventAcceptanceAsync(eventId, memberId, acceptance)));
 }