/// <inheritdoc /> /// <summary> /// Push event to outlook calendar /// </summary> /// <param name="evt"></param> /// <returns></returns> public virtual async Task <ResultModel> PushEventAsync(GetEventViewModel evt) { var response = new ResultModel(); if (!_isAuthorized) { return(response); } try { var requestResult = await _graphClient.Me.Events .Request() .Header("Prefer", "outlook.timezone=\"Pacific Standard Time\"") .AddAsync(OutlookMapper.Map(evt)); await _settingsService.SetEventAttributeAsync(evt.Id, $"{nameof(OutlookCalendarProvider)}_evtId", requestResult.Id); response.IsSuccess = true; } catch (Exception e) { Console.WriteLine(e); } return(response); }
/// <inheritdoc /> /// <summary> /// Update event on provider /// </summary> /// <param name="evt"></param> /// <param name="evtId"></param> /// <returns></returns> public virtual async Task <ResultModel> UpdateEventAsync(GetEventViewModel evt, string evtId) { var response = new ResultModel(); if (evtId.IsNullOrEmpty() || !_isAuthorized) { response.Errors.Add(new ErrorModel(string.Empty, "Invalid parameters")); return(response); } try { var outLookEvt = await _graphClient.Me.Events[evtId] .Request() .Header("Prefer", "outlook.timezone=\"Pacific Standard Time\"") .Select(e => new { e.Subject, e.Body, e.BodyPreview, e.Organizer, e.Attendees, e.Start, e.End, e.Location }) .GetAsync(); if (evt == null) { throw new Exception("Event not found"); } await _graphClient.Me.Events[evtId] .Request() .UpdateAsync(OutlookMapper.Map(outLookEvt, evt)); response.IsSuccess = true; } catch (Exception e) { response.Errors.Add(new ErrorModel(string.Empty, e.Message)); } return(response); }