private Appointment CreateAppointment(AppointmentWrapper appWrapper, User user) { var dateOfCreation = appWrapper._CreateDate; if (!appWrapper.ExistingAppointment) { dateOfCreation = DateTime.UtcNow; } return(new Appointment { AppointmentId = appWrapper._AppointmentId, CustomerId = appWrapper._CustomerId, Description = appWrapper._Description, Title = appWrapper._Title, Start = appWrapper._Start, End = appWrapper._End, Contact = appWrapper._Contact, Location = appWrapper._Location, CreateDate = dateOfCreation, CreatedBy = user.UserId.ToString(), LastUpdate = DateTime.UtcNow, LastUpdateBy = user.UserId.ToString(), Url = appWrapper._Type }); }
private async void OnNewAppointmentCreate(AppointmentWrapper appointment) { Controls[ApplicationControls.AppointmentDetail] = null; CurrentContent = Controls[ApplicationControls.AppointmentsList]; _eventAggregator.GetEvent <AppointmentIsLoadingEvent>().Publish(true); if (appointment != null) { if (appointment.ExistingAppointment) { await _appointmentDataService.ModifyAppointmentAsync(appointment, _user); OnSelectedCustomerChanged(appointment._CustomerId); } else { await _appointmentDataService.SaveNewAppointmentAsync(appointment, _user); OnSelectedCustomerChanged(appointment._CustomerId); } await LoadAppointments(); _customerAppointments.Remove(appointment); _customerAppointments.Add(appointment); SortAppointments(_customerAppointments); var customer = FindCustomerById(appointment._CustomerId); customer._AppointmentCount++; } _eventAggregator.GetEvent <AppointmentIsLoadingEvent>().Publish(false); }
public AppointmentDetailViewModel(IEventAggregator eventAggregator, CustomerWrapper customer, AppointmentWrapper appointment) { _eventAggregator = eventAggregator; Customer = customer; Appointment = appointment; Type = new ObservableCollection <string> { "New Appt", "Follow up" }; TypeSelected = Appointment._Type; AvailableStartTime = new ObservableCollection <TimeSpan>(); AvailableEndTime = new ObservableCollection <TimeSpan>(); CreateTime(new TimeSpan(START_TIME_HOUR, 0, 0), AvailableStartTime); if (Appointment._Title != null) { Appointment._SelectedDate = Appointment._Start; var startTime = TimeZoneInfo.ConvertTimeFromUtc(Appointment._Start, TimeZoneInfo.Local); var endTime = TimeZoneInfo.ConvertTimeFromUtc(Appointment._End, TimeZoneInfo.Local); SelectedStartTime = new TimeSpan(startTime.Hour, startTime.Minute, 0); CreateTime(SelectedStartTime ?? new TimeSpan(), AvailableStartTime); SelectedEndTime = new TimeSpan(endTime.Hour, endTime.Minute, 0); } SaveCommand = new RelayCommand(OnAppointmentSave, CanAppointmentSave); CancelCommand = new RelayCommand(OnCancel); }
public async Task ModifyAppointmentAsync(AppointmentWrapper modifiedApp, User user) { await Task.Run(async() => { using (var context = _contextCreator()) { var appointment = CreateAppointment(modifiedApp, user); context.Entry(appointment).State = EntityState.Modified; await context.SaveChangesAsync(); } }); }
public async Task <bool> DeleteAppointmentAsync(AppointmentWrapper selectedAppointment, User user) { await Task.Run(async() => { using (var context = _contextCreator()) { var appointment = CreateAppointment(selectedAppointment, user); appointment.CreateDate = selectedAppointment._CreateDate; appointment.LastUpdate = selectedAppointment._LastUpdate; context.Appointments.Attach(appointment); context.Appointments.Remove(appointment); context.Entry(appointment).State = EntityState.Deleted; await context.SaveChangesAsync(); } }); return(true); }
public async Task SaveNewAppointmentAsync(AppointmentWrapper newAppointment, User user) { await Task.Run(async() => { using (var context = _contextCreator()) { var appointment = CreateAppointment(newAppointment, user); var appId = 0; if (context.Appointments.Count() > 0) { appId = await context.Appointments.MaxAsync(app => app.AppointmentId); appId++; } appointment.AppointmentId = appId; context.Appointments.Add(appointment); context.Entry(appointment).State = EntityState.Added; await context.SaveChangesAsync(); } }); }
private void OnNewAppointmentCreate() { _eventAggregator.GetEvent <NewCustomerViewEvent>().Publish("New Customer triggered"); SelectedApointment = null; }