public async Task <ResponseDto <BaseModelDto> > EditEvent(string calendarId, string eventId, EditEventBindingModel model) { var response = new ResponseDto <BaseModelDto>(); if (model.StartDate >= model.EndDate) { response.Errors.Add(ServiceErrors.START_DATE_GREATER_ERROR); return(response); } var service = await _googleCalendarService.GetCalendarService(); if (service == null) { response.Errors.Add(ServiceErrors.SERVICE_ERROR); return(response); } var events = await GetListOfEvents(calendarId); if (events.ErrorOccurred) { response.Errors.Add(ServiceErrors.STH_WENT_WRONG_ERROR); return(response); } var exists = events.Object.EventsList.Exists(ev => ev.Id == eventId); if (!exists) { response.Errors.Add(ServiceErrors.EVENT_DOES_NOT_EXIST_ERROR); return(response); } var dbCalendar = await _calendarRepository.GetById(calendarId); if (dbCalendar == null) { response.Errors.Add(ServiceErrors.CALENDAR_DOES_NOT_EXIST_ERROR); return(response); } var valideDate = ValidDateTimeForEdit(model.StartDate, model.EndDate, dbCalendar, eventId); if (!valideDate) { response.Errors.Add(ServiceErrors.EVENT_WHILE_OTHERS_ERROR); return(response); } var dbEvent = await _eventRepository.GetById(eventId); if (dbEvent == null) { response.Errors.Add(ServiceErrors.EVENT_DOES_NOT_EXIST_ERROR); return(response); } dbEvent.Summary = model.Summary; dbEvent.StartDate = model.StartDate; dbEvent.EndDate = model.EndDate; await _eventRepository.Edit(dbEvent); var oldEvent = await service.Events.Get(calendarId, eventId).ExecuteAsync(); oldEvent.Summary = model.Summary; oldEvent.Start.DateTime = model.StartDate; oldEvent.End.DateTime = model.EndDate; await service.Events.Update(oldEvent, calendarId, eventId).ExecuteAsync(); return(response); }
public async Task <IActionResult> EditEvent(string calendarId, string eventId, [FromBody] EditEventBindingModel model) { var response = await _eventService.EditEvent(calendarId, eventId, model); if (response.ErrorOccurred) { return(BadRequest(response)); } return(Ok(response)); }