public void getDuePickUp()
        {
            var pendingPickUps = new PickUpsDBManager();
            int _duepickups    = pendingPickUps.getDuePickUps().Count;

            IHubContext context = GlobalHost.ConnectionManager.GetHubContext <DuePickUpsHub>();

            context.Clients.All.onGetDuePickUp(_duepickups);
        }
        public async Task <ActionResult> sendMessages(List <RefillLineViewModel> model)
        {
            if (ModelState.IsValid)
            {
                var retrivedData = model;
                var msgHelper    = new MessageHelper();

                // Processing here ...
                if (UserManager.EmailService != null)
                {
                    foreach (var data in retrivedData)
                    {
                        if (data.IsSelected)
                        {
                            // Need to add medecine as well
                            var app_member = await UserManager.FindByIdAsync(data.pId);

                            if (app_member != null)
                            {
                                // Generate random 8 chars alpha-numeric string
                                string code = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Substring(0, 10);

                                // Prepare a callback URL
                                var  callbackUrl         = Url.Action("Index", "Patient", routeValues: new { patientName = app_member.UserName }, protocol: Request.Url.Scheme);
                                var  unSubscribeCallBack = Url.Action("UnSubscribe", "Patient", routeValues: new { patientName = app_member.UserName }, protocol: Request.Url.Scheme);
                                bool done = await msgHelper.SendRefillMessageAsync(UserManager,
                                                                                   app_member, callbackUrl,
                                                                                   unSubscribeCallBack, code, data.MedicineName);

                                if (done)
                                {
                                    var pickupMnger = new PickUpsDBManager();
                                    var pickup      = new PickUp();
                                    pickup.GuidRand      = code;
                                    pickup.IsPickUpReady = false;
                                    pickup.PatientName   = app_member.UserName;
                                    pickup.MedicineName  = data.MedicineName;
                                    pickup.PatientId     = app_member.Id;

                                    pickupMnger.createPickUp(pickup);
                                }
                            }
                        }
                    }
                }

                return(RedirectToAction("Index", "Home"));
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult getForm(RefillViewModel model)
        {
            if (ModelState.IsValid)
            {
                // find the guid in the table and return the form
                var pickupManager   = new PickUpsDBManager();
                var retrievedPickup = pickupManager.findPickUpByPatientName(model.PatientName);

                if (model.Code == retrievedPickup.GuidRand)
                {
                    var refillresponsemodel = new RefillResponseViewModel();
                    refillresponsemodel.CommunicationType = (int)CommunicationPreferenceId.Email;
                    refillresponsemodel.pickupId          = retrievedPickup.PickupId;
                    return(PartialView("_RefillResponsePartialView", refillresponsemodel));
                }
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult GetPendingPickups()
        {
            var pendingPickUps   = new PickUpsDBManager();
            var retrievedPickUps = pendingPickUps.getDuePickUps();
            var DueRefills       = new List <RefillLineViewModel>();

            foreach (var item in retrievedPickUps)
            {
                var refillline = new RefillLineViewModel()
                {
                    PatientName  = item.PatientName,
                    MedicineName = item.MedicineName,
                    pId          = item.PickupId,
                    IsSelected   = true
                };
                DueRefills.Add(refillline);
            }

            return(PartialView("_PendingPickUpMessagesPartialView", DueRefills));
        }
        public async Task <ActionResult> SubmitResponse(RefillResponseViewModel model)
        {
            if (ModelState.IsValid)
            {
                var pickupManager   = new PickUpsDBManager();
                var retrievedPickup = pickupManager.findPickUpById(model.pickupId);

                if (model.SelectedConfirm && retrievedPickup != null)
                {
                    pickupManager.confirmRefill(retrievedPickup.PickupId);
                    var appmember = await UserManager.FindByNameAsync(retrievedPickup.PatientName);

                    if (appmember != null)
                    {
                        appmember.CommunicationType = model.CommunicationType;
                        await UserManager.UpdateAsync(appmember);
                    }
                }
            }
            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> SendPickUps(List <RefillLineViewModel> model)
        {
            if (ModelState.IsValid)
            {
                var retrivedData = model;
                var msgHelper    = new MessageHelper();

                // Processing here ...
                if (UserManager.EmailService != null)
                {
                    foreach (var data in retrivedData)
                    {
                        if (data.IsSelected)
                        {
                            // Need to add medecine as well
                            var app_member = await UserManager.FindByNameAsync(data.PatientName);

                            if (app_member != null)
                            {
                                // Prepare a callback URL
                                var unSubscribeCallBack = Url.Action("UnSubscribe", "Patient", routeValues: new { patientName = app_member.UserName }, protocol: Request.Url.Scheme);

                                bool done = await msgHelper.SendPickUpMessageAsync(UserManager, app_member, unSubscribeCallBack, data.MedicineName);

                                if (done)
                                {
                                    var pickupMnger = new PickUpsDBManager();
                                    pickupMnger.deletePickUp(data.pId);
                                }
                            }
                        }
                    }
                }

                return(RedirectToAction("Index", "Home"));
            }

            return(RedirectToAction("Index"));
        }