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
            });
        }
Example #2
0
        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);
        }
Example #3
0
        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;
 }