コード例 #1
0
        public async Task <JsonResult> AddEvent([Required] BaseEventViewModel newEvent)
        {
            var response = new ResultModel <Guid>();

            if (ModelState.IsValid)
            {
                return(Json(await _calendarManager.AddEventAsync(newEvent)));
            }
            response.Errors = ModelState.ToResultModelErrors().ToList();
            return(Json(response, _serializeSettings));
        }
コード例 #2
0
        /// <inheritdoc />
        /// <summary>
        /// Create new event
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ResultModel <Guid> > AddEventAsync(BaseEventViewModel model)
        {
            var response           = new ResultModel <Guid>();
            var currentUserRequest = await _userManager.GetCurrentUserAsync();

            if (!currentUserRequest.IsSuccess)
            {
                response.Errors.Add(new ErrorModel(string.Empty, "You are not authorized"));
                return(response);
            }

            var user = currentUserRequest.Result;
            var evt  = model.Adapt <CalendarEvent>();

            evt.Organizer = user.Id;
            await _context.CalendarEvents.AddAsync(evt);

            var dbResult = await _context.PushAsync();

            if (!dbResult.IsSuccess)
            {
                response.Errors = dbResult.Errors;
                return(response);
            }

            await AddOrUpdateMembersToEventAsync(evt.Id, model.Members);

            CalendarEvents.SystemCalendarEvents.EventCreated(new CalendarEventCreatedEventArgs
            {
                EventId    = evt.Id,
                StartDate  = evt.StartDate,
                EndDate    = evt.EndDate,
                Title      = evt.Title,
                Details    = evt.Details,
                Organizer  = user.UserName,
                Invited    = model.Members?.Select(x => x.ToString()),
                BaseAppUrl = _contextAccessor?.GetAppBaseUrl()
            });

            response.IsSuccess = true;
            response.Result    = evt.Id;
            return(response);
        }