// Creation of a Visit is handled by the RequestDataProvider // Visit can only be created on creation of a new request public async Task <CalendarEvent> UpdateAsync(CalendarEvent calendarEvent) { DataProvider.Models.Visit visitRecord = null; // calendar event doesn't necessarily have an id, since it may not be created yet (while the underlying visit record already exists) if (calendarEvent.Id != 0) { visitRecord = await FindByIdAsync(calendarEvent.Id); } else { visitRecord = await FindWhereAsync(v => v.RequestId == calendarEvent.Request.Id); } _mapper.Map(calendarEvent, visitRecord); _context.Visits.Update(visitRecord); await _context.SaveChangesAsync(); var savedCalendarEvent = _mapper.Map <CalendarEvent>(visitRecord); if (savedCalendarEvent != null) // maybe null if the domain resource 'CalendarEvent' has been removed { savedCalendarEvent.Period = calendarEvent.Period; savedCalendarEvent.FromHour = calendarEvent.FromHour; savedCalendarEvent.UntilHour = calendarEvent.UntilHour; } return(savedCalendarEvent); }
private async Task <DataProvider.Models.Visit> CreateVisitForRequestAsync(DataProvider.Models.Request requestRecord, Request request = null) { var visitRecord = new DataProvider.Models.Visit { RequestId = requestRecord.Id, CustomerId = requestRecord.CustomerId, RelativeContactId = requestRecord.RelativeContactId, RelativeBuildingId = requestRecord.RelativeBuildingId, EmbeddedCity = requestRecord.EmbeddedCity, Comment = request == null ? null : request.Comment, Visitor = request == null ? null : request.Visitor, OfferExpected = request == null ? false : request.OfferExpected }; _context.Visits.Add(visitRecord); await _context.SaveChangesAsync(); return(visitRecord); }