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)); }
/// <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); }