public ViewReminderModal(Model.Reminder reminderToView)
		{
			this.InitializeComponent();

            _reminderToView = reminderToView;
            LoadReminderInfo();
		}
        private void btnAddUpdateReminder_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            string reminderMessage = txtReminderMessage.Text.Trim();
            DateTime reminderAppearDate = dtpReminderAppearDate.Value.Value;

            if (AreValidFields(reminderMessage, reminderAppearDate) == false)
            {
                return;
            }

            if (_isUpdateReminderInfo)
            {
                _reminderToUpdate.Message = reminderMessage;
                _reminderToUpdate.AppearDate = reminderAppearDate;
                _reminderToUpdate.RequireAdmin = chkRequireAdmin.IsChecked.Value;

                UpdateReminder(_reminderToUpdate);
            }
            else
            {
                Model.Reminder reminderToAdd = new Model.Reminder()
                {
                    Message = reminderMessage,
                    AppearDate = reminderAppearDate,
                    CreatedDate = DateTime.Now,
                    RequireAdmin = chkRequireAdmin.IsChecked.Value,
                    Seen = false,
                    SeenBy = null,
                    AutoGenerated = false,
                    SeenDate = null
                };

                AddReminder(reminderToAdd);
            }
        }
        public ShowPendingReminderModal(Model.Reminder reminderToShow, Model.User userLoggedIn)
		{
			this.InitializeComponent();

            _reminderToShow = reminderToShow;
            _userLoggedIn = userLoggedIn;
            UpdateReminderFields();
		}
Esempio n. 4
0
        public CreateReminderViewModel(IRemindersRepository repo, IDialogCoordinator dialogService)
        {
            _remindersRepo = repo;
            _dialogService = dialogService;

            CurrentReminder = new Model.Reminder();

            CreateCommand = new RelayCommand(CreateReminder);
            CancelCommand = new RelayCommand(CancelCreation);
        }
        public AddEditRemindersModal(Model.Reminder reminderToUpdate)
		{
			this.InitializeComponent();

            _reminderToUpdate = reminderToUpdate;

            _isUpdateReminderInfo = reminderToUpdate != null;
            dtpReminderAppearDate.Value = DateTime.Now;

            if (_isUpdateReminderInfo)
            {
                PrepareWindowForUpdates();
            }
		}
Esempio n. 6
0
        public async Task <IActionResult> CreateReminder([FromBody] Model.Reminder reminder)
        {
            var reminderNotification = new Model.Reminder
            {
                UserId  = reminder.UserId,
                Message = reminder.Message,
                EmailTo = reminder.EmailTo,
                Date    = reminder.Date
            };

            _reminderContext.Reminders.Add(reminderNotification);

            await _reminderContext.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetById), new { id = reminderNotification.Id }, null));
        }
        private static void CreateFunctionalityBasedOnEventStatus(WpfScheduler.Event e, EventStatus es)
        {   
            //Creating reminder for recurrent treatments
            if (es == EventStatus.COMPLETED && e.EventInfo.Treatment.Recurrent != null)
            {
                string reminderMessage = "El paciente '" + e.EventInfo.Patient.FirstName + " " + e.EventInfo.Patient.LastName + "'"
                                        + " con Exp. No. " + e.EventInfo.Patient.AssignedId + " tomó el tratamiento de '" + e.EventInfo.Treatment.Name + "' el día "
                                        + e.EventInfo.StartEvent.ToString("D") + " a las " + e.EventInfo.StartEvent.ToString("HH:mm") + " hrs. "
                                        + "\nDado que este tratamiento es recurrente es necesario que llame al paciente para agendar de nuevo una cita.";

                Model.Reminder reminderToAdd = new Model.Reminder()
                {
                    Message = reminderMessage,
                    AppearDate = e.EventInfo.StartEvent.AddDays(e.EventInfo.Treatment.Recurrent.Value),
                    CreatedDate = DateTime.Now,
                    RequireAdmin = true,
                    Seen = false,
                    SeenBy = null,
                    AutoGenerated = true
                };

                if (Controllers.BusinessController.Instance.Add<Model.Reminder>(reminderToAdd) == false)
                {
                    MessageBox.Show("No se pudo generar un recordatorio para esta cita que es de tratammiento recurrente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }


            if (es == EventStatus.CANCELED)
            {
                //If the event is canceled, then increment UsesLeft to the selected instrument
                //TODO: Now the user is able to make an event regardless if there is instruments available.
                //      So, we can't increment the UsesLeft followint the old logic.
                //if (e.EventInfo.Instrument != null)
                //{
                //    e.EventInfo.Instrument.UsesLeft = e.EventInfo.Instrument.UsesLeft.Value + 1;
                //    if (BusinessController.Instance.Update<Model.Instrument>(e.EventInfo.Instrument) == false)
                //    {
                //        MessageBox.Show("No se pudo incrementar la cantidad de usos al instrumento que iba a ser utilizado en esta cita", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                //    }   
                //}

                //Send email to patient for recurrent canceled events
                List<Model.Event> canceledEventsInARow = GetPatientCanceledEventsInARow(e.EventInfo.Patient.PatientId, 3);
                List<Model.Event> canceledEventsOfSameTreatment = GetPatientCanceledEventsOfSameTreatment(e.EventInfo.Patient.PatientId, e.EventInfo.TreatmentId, 3);

                if (canceledEventsInARow != null || canceledEventsOfSameTreatment != null)
                {
                    new CanceledEventsSendEmailModal(canceledEventsInARow, canceledEventsOfSameTreatment, e.EventInfo.Patient, e.EventInfo.Treatment).ShowDialog();
                }
            }   
        }
        private void AddLaboratoryWork(Model.LaboratoryWork laboratoryWorkToAdd)
        {
            if (Controllers.BusinessController.Instance.Add<Model.LaboratoryWork>(laboratoryWorkToAdd))
            {
                if (laboratoryWorkToAdd.ReceivedDate == null)
                {
                    string reminderMessage = string.Format(
                                          "Revise que el trabajo de laboratorio '{0}' del paciente '{1}' " +
                                          "entregado el día {2}, haya sido recibido." +
                                          "\nEl técnico encargado de dicho trabajo es '{3}'.",
                                            laboratoryWorkToAdd.WorkName,
                                            string.Format("{1} {2} (Exp. No. {0})", laboratoryWorkToAdd.Patient.AssignedId, laboratoryWorkToAdd.Patient.FirstName, laboratoryWorkToAdd.Patient.LastName),
                                            laboratoryWorkToAdd.DeliveryDate.ToString("D"),
                                            laboratoryWorkToAdd.Technical.Name);

                    Model.Reminder reminderToAdd = new Model.Reminder()
                    {
                        Message = reminderMessage,
                        AppearDate = DateTime.Now.AddDays(6.0),
                        CreatedDate = DateTime.Now,
                        RequireAdmin = true,
                        Seen = false,
                        SeenBy = null,
                        AutoGenerated = true
                    };

                    if (Controllers.BusinessController.Instance.Add<Model.Reminder>(reminderToAdd) == false)
                    {
                        MessageBox.Show("No se pudo generar un recordatorio para este trabajo de laboratorio", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }

                this.Close();
            }
            else
            {
                MessageBox.Show("No se pudo agregar el trabajo de laboratorio", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void btnAddCleanedAction_Click(object sender, System.Windows.RoutedEventArgs e)
		{
            Model.CleanedAction cleanedAction = new Model.CleanedAction()
            {
                Shift = cmbShift.SelectedItem.ToString(),
                UserId = _userLoggedIn.UserId,
                ActionDate = DateTime.Now,
                Observations = txtCleanedActionObservations.Text.Trim()
            };

            if (Controllers.BusinessController.Instance.Add<Model.CleanedAction>(cleanedAction))
            {
                switch (_cleaningTypeToUpdate)
                {
                    case CleaningType.CLEANED:
                        _cleanedMaterialToUpdate.Cleaned = cleanedAction.CleanedActionId;
                        break;
                    case CleaningType.PACKAGED:
                        _cleanedMaterialToUpdate.Packaged = cleanedAction.CleanedActionId;
                        break;
                    case CleaningType.STERILIZED:
                        _cleanedMaterialToUpdate.Sterilized = cleanedAction.CleanedActionId;
                        _cleanedMaterialToUpdate.GroupLetter = txtGroup.Text;
                        break;
                    default:
                        break;
                }

                if (Controllers.BusinessController.Instance.Update<Model.CleanedMaterial>(_cleanedMaterialToUpdate))
                {
                    if (_cleaningTypeToUpdate == CleaningType.STERILIZED)
                    {
                        string reminderMessage = string.Format("Los instrumentos del grupo '{0}' tienen que ser Re-Esterilizados ya que han pasado 30 días desde su esterilización.",
                                                    _cleanedMaterialToUpdate.GroupLetter);

                        Model.Reminder reminderToAdd = new Model.Reminder()
                        {
                            Message = reminderMessage,
                            AppearDate = cleanedAction.ActionDate.AddDays(30.0),
                            CreatedDate = DateTime.Now,
                            RequireAdmin = true,
                            Seen = false,
                            SeenBy = null,
                            AutoGenerated = true
                        };

                        if (Controllers.BusinessController.Instance.Add<Model.Reminder>(reminderToAdd) == false)
                        {
                            MessageBox.Show("No se pudo generar un recordatorio para este grupo de esterilización", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }

                    this.Close();
                }
                else
                {
                    MessageBox.Show("No se pudo cambiar el estado del registro de limpieza", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            else
            {
                MessageBox.Show("No se pudo cambiar el estado del registro de limpieza", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
		}
Esempio n. 10
0
 private void CloseCreateReminderWindow()
 {
     CurrentReminder = new Model.Reminder();
     Messenger.Default.Send(new NotificationMessage("CloseCreateReminderWindow"));
 }
        private void AddInvoice(Model.ReceivedInvoice invoiceToAdd)
        {
            if (Controllers.BusinessController.Instance.Add<Model.ReceivedInvoice>(invoiceToAdd))
            {
                if (invoiceToAdd.IsPaid == false)
                {
                    string reminderMessage = string.Format(
                                          "Revise que la compra realizada a '{0}' el día {1} haya sido pagada."+
                                          "\nFactura con número de folio '{2}' por la cantidad de '{3}'.",
                                            invoiceToAdd.ResourceProvider.Name,
                                            invoiceToAdd.PurchaseDate.ToString("D"),
                                            invoiceToAdd.Folio,
                                            invoiceToAdd.TotalAmount);

                    Model.Reminder reminderToAdd = new Model.Reminder()
                    {
                        Message = reminderMessage,
                        AppearDate = DateTime.Now.AddDays(15.0),
                        CreatedDate = DateTime.Now,
                        RequireAdmin = true,
                        Seen = false,
                        SeenBy = null,
                        AutoGenerated = true
                    };

                    if (Controllers.BusinessController.Instance.Add<Model.Reminder>(reminderToAdd) == false)
                    {
                        MessageBox.Show("No se pudo generar un recordatorio para esta factura", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }   
                }

                this.Close();
            }
            else
            {
                MessageBox.Show("No se pudo agregar la factura", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        void CreateReminderForExpiredStatements()
        {
            DateTime today = DateTime.Now.Date;
            List<Model.Statement> expiredStatements = BusinessController.Instance.FindBy<Model.Statement>(s => s.IsPaid == false && s.ExpirationDate < today && s.Reminder == null).ToList();

            foreach (var item in expiredStatements)
            {
                string reminderMessage = string.Format("El estado de cuenta número '{0}' del paciente '(Exp. No. {1}) {2} {3}' ha expirado."
                                                        + "\nFavor de informar al paciente para que pase a liquidar su saldo pendiente, "
                                                        + "ya que si no lo hace no se le podrán agendar más citas."
                                                        , item.StatementId
                                                        , item.Patient.AssignedId
                                                        , item.Patient.FirstName
                                                        , item.Patient.LastName);

                Model.Reminder reminderToAdd = new Model.Reminder()
                {
                    Message = reminderMessage,
                    AppearDate = DateTime.Now,
                    CreatedDate = DateTime.Now,
                    RequireAdmin = true,
                    Seen = false,
                    SeenBy = null,
                    AutoGenerated = true
                };

                if (Controllers.BusinessController.Instance.Add<Model.Reminder>(reminderToAdd))
	            {
                    item.ReminderId = reminderToAdd.ReminderId;
                    Controllers.BusinessController.Instance.Update<Model.Statement>(item);
	            }                
            }
        }