public async Task <OperationDataResult <List <CalendarEventModel> > > Index(CalendarEventsRequestModel requestModel) { return(await _calendarService.Index(requestModel)); }
public async Task <OperationDataResult <List <CalendarEventModel> > > Index(CalendarEventsRequestModel requestModel) { try { var calendarEventModels = new List <CalendarEventModel>(); var core = _coreHelper.GetCore(); var cases = await core.Result.CaseReadAll(requestModel.TemplateId, requestModel.StartDate, requestModel.EndDate, null); var casesSiteIds = cases.Where(x => x.SiteId != null) .Select(x => x.SiteId) .GroupBy(x => x) .Select(x => (int)x.Key) .ToList(); var calendarUsers = _dbContext.CalendarUsers .Where(x => casesSiteIds.Contains(x.SiteId) && x.IsVisibleInCalendar) .ToList(); foreach (var caseItem in cases) { if (caseItem.SiteId != null) { var siteId = caseItem.SiteId; var calendarUser = calendarUsers.FirstOrDefault(x => x.SiteId == siteId); if (calendarUser != null) { var dateParseResult = DateTime.TryParseExact(caseItem.FieldValue1, "yyyy-MM-dd", null, DateTimeStyles.None, out DateTime date); var item = new CalendarEventModel { Color = calendarUser.Color, Title = caseItem.FieldValue2 }; if (dateParseResult) { item.Start = date; item.End = date; } item.Meta = new CalendarEventMeta { CaseId = caseItem.Id.ToString(), CalendarUserName = calendarUser.NameInCalendar }; // Add item calendarEventModels.Add(item); } } } return(new OperationDataResult <List <CalendarEventModel> >(true, calendarEventModels)); } catch (Exception e) { Trace.TraceError(e.Message); _logger.LogError(e.Message); return(new OperationDataResult <List <CalendarEventModel> >(false, _caseManagementLocalizationService.GetString("ErrorObtainingCalendarInfo"))); } }