Exemple #1
0
        public ActionResult Donor(DonorModel model)
        {
            try
            {
                BloodDonorDBEntities db = new BloodDonorDBEntities();

                List <string> isDonorActive = new List <string>(new string[] { "Yes", "No" });
                ViewBag.IsDonorActiveList = new SelectList(isDonorActive);

                List <string> bloodType = new List <string>(new string[] { "A", "AB", "B", "0" });
                ViewBag.BloodTypeList = new SelectList(bloodType);

                List <string> rhFactor = new List <string>(new string[] { "+(positive)", "-(negative)" });
                ViewBag.RhFactorList = new SelectList(rhFactor);

                if (model.DonorID > 0)
                {
                    //Update a donor
                    Donor don = db.Donors.SingleOrDefault(x => x.DonorID == model.DonorID && x.DonorIsDeleted == false);

                    don.ActiveDonor       = model.ActiveDonor;
                    don.DonorFullName     = model.DonorFullName;
                    don.BloodType         = model.BloodType;
                    don.RhFactor          = model.RhFactor;
                    don.DateOfBirth       = model.DateOfBirth;
                    don.Weight            = model.Weight;
                    don.DonorEmail        = model.DonorEmail;
                    don.DonorPhoneNumber  = model.DonorPhoneNumber;
                    don.LastScreeningDate = model.LastScreeningDate;

                    db.SaveChanges();
                }
                else
                {
                    //Insert a recipient in database
                    Donor don = new Donor();
                    don.ActiveDonor       = model.ActiveDonor;
                    don.DonorFullName     = model.DonorFullName;
                    don.BloodType         = model.BloodType;
                    don.RhFactor          = model.RhFactor;
                    don.DateOfBirth       = model.DateOfBirth;
                    don.Weight            = model.Weight;
                    don.DonorEmail        = model.DonorEmail;
                    don.DonorPhoneNumber  = model.DonorPhoneNumber;
                    don.LastScreeningDate = model.LastScreeningDate;;
                    don.DonorIsDeleted    = false;

                    db.Donors.Add(don);
                    db.SaveChanges();

                    int latestDonorID = don.DonorID;
                }

                return(View(model));
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Exemple #2
0
        public ActionResult DonationSite(DonationSiteModel model)
        {
            try
            {
                BloodDonorDBEntities db = new BloodDonorDBEntities();

                List <string> mobile = new List <string>(new string[] { "True", "False" });
                ViewBag.MobileSiteList = new SelectList(mobile);

                if (model.DonationSiteID > 0)
                {
                    //Update a donation site
                    DonationSite don = db.DonationSites.SingleOrDefault(x => x.DonationSiteID == model.DonationSiteID && x.IsArchived == false);

                    don.SiteName          = model.SiteName;
                    don.EventStartDate    = model.EventStartDate;
                    don.EventEndDate      = model.EventEndDate;
                    don.RegistrationEmail = model.RegistrationEmail;
                    don.RegistrationPhone = model.RegistrationPhone;
                    don.Address           = model.Address;
                    don.City             = model.City;
                    don.Zip              = model.Zip;
                    don.StaffingRequired = model.StaffingRequired;
                    don.MobileSite       = model.MobileSite;

                    db.SaveChanges();
                }
                else
                {
                    //Insert a recipient in database
                    DonationSite don = new DonationSite();
                    don.SiteName          = model.SiteName;
                    don.EventStartDate    = model.EventStartDate;
                    don.EventEndDate      = model.EventEndDate;
                    don.RegistrationEmail = model.RegistrationEmail;
                    don.RegistrationPhone = model.RegistrationPhone;
                    don.Address           = model.Address;
                    don.City             = model.City;
                    don.Zip              = model.Zip;
                    don.StaffingRequired = model.StaffingRequired;
                    don.MobileSite       = model.MobileSite;
                    don.IsArchived       = false;

                    db.DonationSites.Add(don);
                    db.SaveChanges();

                    int latestDonationSiteID = don.DonationSiteID;
                }

                return(View(model));
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Exemple #3
0
        public ActionResult Recipients(RecipientModel model)
        {
            try
            {
                BloodDonorDBEntities db   = new BloodDonorDBEntities();
                List <Donation>      list = db.Donations.ToList();
                ViewBag.DonationList = new SelectList(list.Where(x => x.IsDeleted == false), "DonationID", "DonationType");

                List <Donor> donorlist = db.Donors.ToList();
                ViewBag.DonorList = new SelectList(donorlist.Where(x => x.DonorIsDeleted == false), "DonorID", "DonorFullName");

                if (model.RecipientID > 0)
                {
                    //Update a recipient
                    Recipient rec = db.Recipients.SingleOrDefault(x => x.RecipientID == model.RecipientID && x.RecipientIsDeleted == false);

                    rec.DonorID            = model.DonorID;
                    rec.DonationID         = model.DonationID;
                    rec.RecipientCodedName = model.RecipientCodedName;
                    rec.DateOfUse          = model.DateOfUse;
                    rec.RelatedCondition   = model.RelatedCondition;

                    db.SaveChanges();
                }
                else
                {
                    //Insert a recipient in database
                    Recipient rec = new Recipient();
                    rec.DateOfUse          = model.DateOfUse;
                    rec.RelatedCondition   = model.RelatedCondition;
                    rec.RecipientCodedName = model.RecipientCodedName;
                    rec.DonationID         = model.DonationID;
                    rec.DonorID            = model.DonorID;
                    rec.RecipientIsDeleted = false;

                    db.Recipients.Add(rec);
                    db.SaveChanges();

                    int latestRecipientID = rec.RecipientID;
                }

                return(View(model));
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Exemple #4
0
        public ActionResult Users(User model)
        {
            try
            {
                BloodDonorDBEntities db = new BloodDonorDBEntities();

                if (model.UserID > 0)
                {
                    //Update a recipient
                    User u = db.Users.SingleOrDefault(x => x.UserID == model.UserID && x.UserIsDeleted == false);

                    u.UserID       = model.UserID;
                    u.FirstName    = model.FirstName;
                    u.LastName     = model.LastName;
                    u.EmailAddress = model.EmailAddress;
                    u.PhoneNumber  = model.PhoneNumber;
                    u.IsAdmin      = model.IsAdmin;

                    db.SaveChanges();
                }
                else
                {
                }

                return(View(model));
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
        public ActionResult AddOrEdit([Bind(Exclude = "IsEmailVerified, ActivationCode")] Staff userModel)
        {
            bool   Status  = false;
            string message = "";

            //Model Validation
            if (ModelState.IsValid)
            {
                #region//Email already exists
                var IsExist = IsEmailExist(userModel.StaffEmail);
                if (IsExist)
                {
                    ModelState.AddModelError("EmailExist", "Email already exists");
                    return(View(userModel));
                }
                #endregion

                #region //Generate activation code
                userModel.ActivationCode = Guid.NewGuid();
                #endregion

                #region //Password hashing
                userModel.StaffPassword   = Crypto.Hash(userModel.StaffPassword);
                userModel.ConfirmPassword = Crypto.Hash(userModel.ConfirmPassword);
                #endregion
                userModel.IsEmailVerified = false;

                #region //Save data to DB
                using (BloodDonorDBEntities db = new BloodDonorDBEntities())
                {
                    /* if (db.Staffs.Any(x => x.staff_username == userModel.staff_username))
                     * {
                     *   ViewBag.DuplicateMessage = "Username already exists";
                     *   return View("AddOrEdit", userModel);
                     * }*/
                    db.Staffs.Add(userModel);
                    db.SaveChanges();

                    //Send email to user
                    SendVerificationLinkEmail(userModel.StaffEmail, userModel.ActivationCode.ToString());
                    message = "Registration successful. Account activation link" + "has been sent to your email address:" + userModel.StaffEmail;
                    Status  = true;
                }
                #endregion
            }
            else
            {
                message = "Invalid request";
            }

            ViewBag.Message = message;
            ViewBag.Status  = Status;
            return(View(userModel));

            /*
             * ModelState.Clear();
             * ViewBag.SuccessMessage = "User created successfuly";
             * return View("AddOrEdit", new Staff());*/
        }
Exemple #6
0
        public ActionResult Registration([Bind(Exclude = "IsEmailVerified, ActivationCode")] User userModel)
        {
            bool   Status  = false;
            string message = "";

            //Model Validation
            if (ModelState.IsValid)
            {
                #region Check if Email already exists
                var IsExist = IsEmailExist(userModel.EmailAddress);
                if (IsExist)
                {
                    ModelState.AddModelError("EmailExist", "Email already exists");
                    return(View(userModel));
                }
                #endregion

                #region Generate activation code
                userModel.ActivationCode = Guid.NewGuid();
                #endregion

                #region Password hashing
                userModel.Password        = Crypto.Hash(userModel.Password);
                userModel.ConfirmPassword = Crypto.Hash(userModel.ConfirmPassword);
                #endregion
                userModel.IsEmailVerified = false;

                #region Save data to database
                using (BloodDonorDBEntities db = new BloodDonorDBEntities())
                {
                    userModel.UserIsDeleted = false;
                    db.Users.Add(userModel);
                    db.SaveChanges();

                    //Send email to user
                    SendVerificationLinkEmail(userModel.EmailAddress, userModel.ActivationCode.ToString(), userModel.Password);
                    message = "Registration successful. Account activation link" +
                              " has been sent to your email address:" + userModel.EmailAddress;
                    Status = true;
                }
                #endregion
            }
            else
            {
                message = "Invalid request";
            }

            ViewBag.Message = message;
            ViewBag.Status  = Status;
            return(View(userModel));
        }
Exemple #7
0
        public JsonResult DeleteDonationSite(int donsiteID)
        {
            BloodDonorDBEntities db = new BloodDonorDBEntities();

            bool         result = false;
            DonationSite don    = db.DonationSites.SingleOrDefault(x => x.IsArchived == false && x.DonationSiteID == donsiteID);

            if (don != null)
            {
                don.IsArchived = true;
                db.SaveChanges();
                result = true;
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Exemple #8
0
        public JsonResult DeleteUser(int userID)
        {
            BloodDonorDBEntities db = new BloodDonorDBEntities();

            bool result = false;
            User rec    = db.Users.SingleOrDefault(x => x.UserIsDeleted == false && x.UserID == userID);

            if (rec != null)
            {
                rec.UserIsDeleted = true;
                db.SaveChanges();
                result = true;
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Exemple #9
0
        public JsonResult DeleteRecipient(int recipientID)
        {
            BloodDonorDBEntities db = new BloodDonorDBEntities();

            bool      result = false;
            Recipient rec    = db.Recipients.SingleOrDefault(x => x.RecipientIsDeleted == false && x.RecipientID == recipientID);

            if (rec != null)
            {
                rec.RecipientIsDeleted = true;
                db.SaveChanges();
                result = true;
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Exemple #10
0
        public ActionResult ForgotPassword(User model)
        {
            bool   Status  = false;
            string message = "";

            //Model Validation
            if (ModelState.IsValid)
            {
                #region Check if Email already exists
                var IsExist = IsEmailExist(model.EmailAddress);
                if (!IsExist)
                {
                    ModelState.AddModelError("EmailExist", "Email does not exists");
                    return(View(model));
                }
                #endregion

                #region Generate new password
                model.Password = Membership.GeneratePassword(12, 1);
                #endregion

                #region Save data to database
                using (BloodDonorDBEntities db = new BloodDonorDBEntities())
                {
                    db.SaveChanges();
                    Status = true;

                    SendPasswordResetEmail(model.EmailAddress, model.Password.ToString());
                    message = "Password reset successful. The new password" +
                              " has been sent to your email address:" + model.EmailAddress;
                    Status = true;
                }
                #endregion
            }
            else
            {
                message = "Invalid request";
            }

            ViewBag.Message = message;
            ViewBag.Status  = Status;
            return(View(model));
        }
        public ActionResult VerifyAccount(string id)
        {
            bool Status = false;

            using (BloodDonorDBEntities db = new BloodDonorDBEntities())
            {
                db.Configuration.ValidateOnSaveEnabled = false; // added to avoid confirm password does not match issue on save changes
                var v = db.Staffs.Where(a => a.ActivationCode == new Guid(id)).FirstOrDefault();
                if (v != null)
                {
                    v.IsEmailVerified = true;
                    db.SaveChanges();
                    Status = true;
                }
                else
                {
                    ViewBag.Message = "Invalid Request";
                }
            }
            ViewBag.Status = Status;
            return(View());
        }
Exemple #12
0
        public ActionResult ChangePassword(UserPasswordChangeModel model)
        {
            bool   Status  = false;
            string message = "";

            //Model Validation
            if (ModelState.IsValid)
            {
                #region Check if Current Password is correct
                var IsCorrect = IsPasswordCorrect(model.Password);
                if (!IsCorrect)
                {
                    ModelState.AddModelError("EmailExist", "Password is incorrect");
                    return(View(model));
                }
                #endregion

                #region Password hashing
                model.NewPassword     = Crypto.Hash(model.NewPassword);
                model.ConfirmPassword = Crypto.Hash(model.ConfirmPassword);
                #endregion

                #region Save data to database
                using (BloodDonorDBEntities db = new BloodDonorDBEntities())
                {
                    db.SaveChanges();
                    Status = true;
                }
                #endregion
            }
            else
            {
                message = "Invalid request";
            }

            ViewBag.Message = message;
            ViewBag.Status  = Status;
            return(View(model));
        }
Exemple #13
0
        public ActionResult Donation(DonationModel model)
        {
            try
            {
                BloodDonorDBEntities db = new BloodDonorDBEntities();

                List <Donor> listDonor = db.Donors.ToList();
                ViewBag.DonorsList = new SelectList(listDonor.Where(x => x.ActiveDonor == "Yes" && x.DonorIsDeleted == false), "DonorID", "DonorFullName");

                List <Recipient> listRecipient = db.Recipients.ToList();
                ViewBag.RecipientsList = new SelectList(listRecipient, "RecipientID", "RecipientCodedName");

                List <DonationSite> listDonationSite = db.DonationSites.ToList();
                ViewBag.DonationSiteList = new SelectList(listDonationSite, "DonationSiteID", "SiteName");

                List <string> listDonationTypes = new List <string>(new string[] { "Whole Blood", "Packed Red Blood Cells", "Platelets", "Plasma" });
                ViewBag.DonationTypeList = new SelectList(listDonationTypes);

                List <string> bloodType = new List <string>(new string[] { "A", "AB", "B", "0" });
                ViewBag.BloodTypeList = new SelectList(bloodType);

                List <string> rhFactor = new List <string>(new string[] { "+(positive)", "-(negative)" });
                ViewBag.RhFactorList = new SelectList(rhFactor);

                List <string> accepted = new List <string>(new string[] { "True", "False" });
                ViewBag.IsAcceptedList = new SelectList(accepted);

                if (model.DonationID > 0)
                {
                    //Update a recipient
                    Donation donation = db.Donations.SingleOrDefault(x => x.DonationID == model.DonationID && x.IsDeleted == false);

                    donation.DonationType   = model.DonationType;
                    donation.CrossBloodType = model.CrossBloodType;
                    donation.CrossRhFactor  = model.CrossRhFactor;
                    donation.NumberOfUnits  = model.NumberOfUnits;
                    donation.DonorID        = model.DonorID;
                    donation.RecipientID    = model.RecipientID;
                    donation.DonationSiteID = model.DonationSiteID;
                    donation.Accepted       = model.Accepted;

                    db.SaveChanges();
                }
                else
                {
                    //Insert a recipient in database
                    Donation donation = new Donation();
                    donation.DonationType   = model.DonationType;
                    donation.CrossBloodType = model.CrossBloodType;
                    donation.CrossRhFactor  = model.CrossRhFactor;
                    donation.NumberOfUnits  = model.NumberOfUnits;
                    donation.DonorID        = model.DonorID;
                    donation.RecipientID    = model.RecipientID;
                    donation.DonationSiteID = model.DonationSiteID;
                    donation.IsDeleted      = false;
                    donation.CreationDate   = DateTime.Now;
                    donation.ExpirationDate = DateTime.Now.AddDays(90);

                    db.Donations.Add(donation);
                    db.SaveChanges();
                }

                return(View(model));
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }