protected override async Task HandleAbsenceEvent(AbsenceEvent @event, IIccOutput outputSettings) { Configure(outputSettings); tuitionResolver.Initialize(); var absences = @event.Absences.Select(absence => { var objective = absence.Objective; if (absence.Type == Absence.ObjectiveType.StudyGroup) { objective = tuitionResolver.ResolveStudyGroup(absence.Objective); } return(new AbsenceData { Date = absence.Date, Objective = absence.Objective, Type = ConvertObjectiveTypeToString(absence.Type), LessonStart = absence.LessonStart, LessonEnd = absence.LessonEnd }); }); var response = await iccImporter.ImportAbsencesAsync(absences.ToList()); await HandleResponseAsync(response); }
protected abstract Task HandleAbsenceEvent(AbsenceEvent @event, T outputSettings);
public Task HandleAbsenceEvent(AbsenceEvent @event, IOutput outputSettings) { return(HandleAbsenceEvent(@event, CastSettings(outputSettings))); }
private void HandleAbsenceEvent(AbsenceEvent obj) { Handle("absence", (handler, settings) => handler.HandleAbsenceEvent(obj, settings)); }
public async Task <ApiResult <NewAbsenceResponse> > Absence([FromBody] AbsenceEvent absenceEvent) { try { var info = await _signInManager.GetExternalLoginInfoAsync(); var userId = info.Principal.FindFirstValue(ClaimTypes.Email); var token2 = info.AuthenticationTokens.Where(u => u.Name == "access_token").FirstOrDefault().Value.ToString(); Models.Data.AbsenceRequest absenceRequest = _mapper.Map <AbsenceEvent, Models.Data.AbsenceRequest>(absenceEvent); absenceRequest.CreatedDateTime = DateTime.Now; absenceRequest.StatusDateTime = DateTime.Now; absenceRequest.UserId = userId; var result = _context.AbsenceRequests.Add(absenceRequest); await _context.SaveChangesAsync(); var groupId = _configuration["GroupId"]; // Create access rule with associated scope AclRule rule = new AclRule(); rule.Role = "writer"; rule.Scope = new AclRule.ScopeData() { Type = "group", Value = groupId }; var service = GetcalendarService(info); var temprule = await service.Acl.List(userId).ExecuteAsync(); bool flag = false; foreach (var item in temprule.Items) { if (item.Id.Contains(groupId)) { flag = true; break; } } if (!flag) { // Insert new access rule AclRule res = await service.Acl.Insert(rule, userId).ExecuteAsync(); } return(new ApiResult <NewAbsenceResponse>() { Result = new NewAbsenceResponse() { absenceRequestId = result.Entity.AbsenceRequestId }, Message = Models.Api.ApiResult <NewAbsenceResponse> .SuccessMessage }); } catch (Exception ex) { Response.StatusCode = 500; _logger.LogError(ex.Message, ex); return(new ApiResult <NewAbsenceResponse>() { Message = Models.Api.ApiResult <NewAbsenceResponse> .ErrorMessage }); } }
protected override Task HandleAbsenceEvent(AbsenceEvent @event, IFileOutput outputSettings) { return(WriteJson(@event.Absences, outputSettings, "absences.json")); }