예제 #1
0
        public ActionResult Registration(string[] Seats, VisitorVM model = null)
        {
            ModelState.Clear();
            List <string> GetSeats = Seats.ToList();
            string        s        = "";

            foreach (string seat in GetSeats)
            {
                s += seat + ",";
            }

            model.ProjectionId = GetSeats[0];
            GetSeats.RemoveAt(0);

            if (Session["UserID"] != null)
            {
                return(RedirectToAction("Index", "RegisteredVisitor", new { seats = s, ProjectionId = model.ProjectionId }));
            }

            if (contextLocal == null)
            {
                return(Redirect(Url.Content("~/")));
            }

            if (model == null)
            {
                model = new VisitorVM();
            }

            model.Seats = GetSeats;

            return(View("Registration", model));
        }
예제 #2
0
        public ActionResult SubmitVisitors(VisitorVM model, string Seats)
        {
            List <string> AllSeats = Seats.Trim(',').Split(',').ToList();

            if (contextLocal == null)
            {
                return(Redirect(Url.Content("~/")));
            }

            if (!ModelState.IsValid)
            {
                return(View("Registration", model));
            }

            // Create new activation code
            model.ActivationCode = rng.Next(1000, 10000).ToString();
            model.Seats          = AllSeats;

            // Add the phone number and activation code to the current session
            Session["ActivationCode"] = model.ActivationCode;
            Session["PhoneNumber"]    = model.PhoneNumber;

            // Send SMS with the activation code for phone number verification

            TwilioHelper.SendSMS("+" + model.PhoneNumber, model.ActivationCode);
            return(View("RegistrationActivation", model));
        }
예제 #3
0
        public JsonResult UpdateVisitor(VisitorVM ObjUpdate)
        {
            MsgUnit Msg = new MsgUnit();

            try
            {
                var userId     = User.Identity.GetUserId();
                var UserInfo   = _unitOfWork.User.GetMyInfo(userId);
                var ObjVisitor = new Visitor();
                ObjVisitor.VisitorCode     = ObjUpdate.VisitorCode;
                ObjVisitor.VisitorName     = ObjUpdate.VisitorName;
                ObjVisitor.Phone1          = ObjUpdate.Phone1;
                ObjVisitor.Email           = ObjUpdate.Email;
                ObjVisitor.Address         = ObjUpdate.Address;
                ObjVisitor.NationalityCode = ObjUpdate.NationalityCode;
                ObjVisitor.SourceCode      = ObjUpdate.SourceCode;
                ObjVisitor.JobCode         = ObjUpdate.JobCode;
                ObjVisitor.GenderCode      = ObjUpdate.GenderCode;
                ObjVisitor.Note            = ObjUpdate.Note;
                ObjVisitor.Interseted      = ObjUpdate.Interseted;
                ObjVisitor.InsDateTime     = DateTime.Now;
                ObjVisitor.InsUserID       = userId;
                ObjVisitor.CompanyID       = UserInfo.fCompanyId;
                ObjVisitor.BirthDate       = ObjUpdate.BirthDate;
                ObjVisitor.VistDate        = ObjUpdate.VistDate;
                string sBirthDate = ObjUpdate.BirthDate.Day.ToString() + ObjUpdate.BirthDate.Month.ToString() + ObjUpdate.BirthDate.Year.ToString();
                ObjVisitor.BirthDateInt = int.Parse(sBirthDate);
                string sVistDate = ObjUpdate.VistDate.Day.ToString() + ObjUpdate.VistDate.Month.ToString() + ObjUpdate.VistDate.Year.ToString();
                ObjVisitor.VistDateInt = int.Parse(sVistDate);
                if (!ModelState.IsValid)
                {
                    string Err    = " ";
                    var    errors = ModelState.Values.SelectMany(v => v.Errors);
                    foreach (ModelError error in errors)
                    {
                        Err = Err + error.ErrorMessage + " * ";
                    }

                    Msg.Msg  = Resources.Resource.SomthingWentWrong + " : " + Err;
                    Msg.Code = 0;
                    return(Json(Msg, JsonRequestBehavior.AllowGet));
                }
                _unitOfWork.Visitor.Update(ObjVisitor);
                _unitOfWork.Complete();

                Msg.Code = 1;
                Msg.Msg  = Resources.Resource.UpdatedSuccessfully;
                return(Json(Msg, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Msg.Msg  = Resources.Resource.SomthingWentWrong + " : " + ex.Message.ToString();
                Msg.Code = 0;
                return(Json(Msg, JsonRequestBehavior.AllowGet));
            }
        }
예제 #4
0
        public ActionResult Save()
        {
            var userId     = User.Identity.GetUserId();
            var UserInfo   = _unitOfWork.User.GetMyInfo(userId);
            var VisitorObj = new VisitorVM();

            VisitorObj.Nationality = _unitOfWork.NativeSql.GetAllNationalities(UserInfo.fCompanyId);
            VisitorObj.Source      = _unitOfWork.NativeSql.GetAllSources(UserInfo.fCompanyId);
            VisitorObj.Job         = _unitOfWork.NativeSql.GetAllJob(UserInfo.fCompanyId);
            VisitorObj.BirthDate   = DateTime.Now;
            VisitorObj.VistDate    = DateTime.Now;
            VisitorObj.VisitorCode = _unitOfWork.Visitor.GetMaxSerial(UserInfo.fCompanyId);
            return(View(VisitorObj));
        }
예제 #5
0
        public ActionResult Index()
        {
            var userId     = User.Identity.GetUserId();
            var UserInfo   = _unitOfWork.User.GetMyInfo(userId);
            int year       = DateTime.Now.Year;
            var VisitorObj = new VisitorVM
            {
                Nationality  = _unitOfWork.NativeSql.GetAllNationalities(UserInfo.fCompanyId),
                Source       = _unitOfWork.NativeSql.GetAllSources(UserInfo.fCompanyId),
                Job          = _unitOfWork.NativeSql.GetAllJob(UserInfo.fCompanyId),
                FromVistDate = new DateTime(year, 1, 1),
                ToDate       = new DateTime(year, 12, 31)
            };



            return(View(VisitorObj));
        }
예제 #6
0
        public JsonResult GetAllVisitor(VisitorVM Obj)
        {
            try
            {
                var userId     = User.Identity.GetUserId();
                var UserInfo   = _unitOfWork.User.GetMyInfo(userId);
                var AllVisitor = _unitOfWork.NativeSql.GetAllVisitor(UserInfo.fCompanyId, Obj.FromVistDate, Obj.ToDate);

                if (!String.IsNullOrEmpty(Obj.VisitorName))
                {
                    AllVisitor = AllVisitor.Where(m => m.VisitorName.Contains(Obj.VisitorName)).ToList();
                }
                if (!String.IsNullOrEmpty(Obj.Phone1))
                {
                    AllVisitor = AllVisitor.Where(m => m.Phone1.Contains(Obj.Phone1)).ToList();
                }
                if (Obj.GenderCode != 0)
                {
                    AllVisitor = AllVisitor.Where(m => m.GenderCode == Obj.GenderCode).ToList();
                }
                if (Obj.NationalityCode != 0)
                {
                    AllVisitor = AllVisitor.Where(m => m.NationalityCode == Obj.NationalityCode).ToList();
                }
                if (Obj.SourceCode != 0)
                {
                    AllVisitor = AllVisitor.Where(m => m.SourceCode == Obj.SourceCode).ToList();
                }
                if (Obj.JobCode != 0)
                {
                    AllVisitor = AllVisitor.Where(m => m.JobCode == Obj.JobCode).ToList();
                }
                if (Obj.IntersetedCaseInt != 0)
                {
                    AllVisitor = AllVisitor.Where(m => m.Interseted == Convert.ToBoolean(Obj.IntersetedCaseInt - 1)).ToList();
                }
                return(Json(AllVisitor, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                ViewBag.Error = ex.Message.ToString();
                return(Json(new List <VisitorVM>(), JsonRequestBehavior.AllowGet));
            }
        }
예제 #7
0
        public ActionResult Delete(int id)
        {
            try
            {
                if (id != 0)
                {
                    var userId = User.Identity.GetUserId();

                    var UserInfo = _unitOfWork.User.GetUserByID(userId);
                    if (UserInfo == null)
                    {
                        RedirectToAction("", "");
                    }

                    var Obj        = _unitOfWork.Visitor.GetVisitorByID(UserInfo.fCompanyId, id);
                    var VisitorObj = new VisitorVM {
                    };
                    VisitorObj.Nationality     = _unitOfWork.NativeSql.GetAllNationalities(UserInfo.fCompanyId);
                    VisitorObj.Source          = _unitOfWork.NativeSql.GetAllSources(UserInfo.fCompanyId);
                    VisitorObj.Job             = _unitOfWork.NativeSql.GetAllJob(UserInfo.fCompanyId);
                    VisitorObj.VisitorCode     = Obj.VisitorCode;
                    VisitorObj.VisitorName     = Obj.VisitorName;
                    VisitorObj.BirthDate       = Obj.BirthDate;
                    VisitorObj.VistDate        = Obj.VistDate;
                    VisitorObj.Email           = Obj.Email;
                    VisitorObj.Phone1          = Obj.Phone1;
                    VisitorObj.Note            = Obj.Note;
                    VisitorObj.Interseted      = Obj.Interseted;
                    VisitorObj.Address         = Obj.Address;
                    VisitorObj.NationalityCode = Obj.NationalityCode;
                    VisitorObj.SourceCode      = Obj.SourceCode;
                    VisitorObj.JobCode         = Obj.JobCode;
                    VisitorObj.GenderCode      = Obj.GenderCode;

                    return(View("Delete", VisitorObj));
                }
                return(View("Delete", new VisitorVM()));
            }
            catch (Exception ex)
            {
                ViewBag.Error = ex.Message.ToString();
                return(View("Error"));
            }
        }
예제 #8
0
        public JsonResult DeleteVisitor(VisitorVM ObjDelete)
        {
            MsgUnit Msg = new MsgUnit();

            try
            {
                var userId     = User.Identity.GetUserId();
                var UserInfo   = _unitOfWork.User.GetMyInfo(userId);
                var ObjVisitor = new Visitor();
                ObjVisitor.VisitorCode = ObjDelete.VisitorCode;
                ObjVisitor.CompanyID   = UserInfo.fCompanyId;
                if (!ModelState.IsValid)
                {
                    string Err    = " ";
                    var    errors = ModelState.Values.SelectMany(v => v.Errors);
                    foreach (ModelError error in errors)
                    {
                        Err = Err + error.ErrorMessage + " * ";
                    }

                    Msg.Msg  = Resources.Resource.SomthingWentWrong + " : " + Err;
                    Msg.Code = 0;
                    return(Json(Msg, JsonRequestBehavior.AllowGet));
                }
                _unitOfWork.Visitor.Delete(ObjVisitor);
                _unitOfWork.Complete();

                Msg.Code = 1;
                Msg.Msg  = Resources.Resource.DeletedSuccessfully;
                return(Json(Msg, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Msg.Msg  = Resources.Resource.SomthingWentWrong + " : " + ex.Message.ToString();
                Msg.Code = 0;
                return(Json(Msg, JsonRequestBehavior.AllowGet));
            }
        }
예제 #9
0
        public ActionResult ConfirmVisitors(VisitorVM model, string Seats)
        {
            if (contextLocal == null)
            {
                return(Redirect(Url.Content("~/")));
            }
            Visitor v;

            // Get the phone number entered previously from the session
            model.PhoneNumber = Session["PhoneNumber"].ToString();
            List <string> AllSeats = Seats.Trim(',').Split(',').ToList();

            // Check if the entered code (from SMS) matches the actual given code
            if (model.ActivationConfirmationCode == Session["ActivationCode"].ToString())
            {
                // Check if this phone number was registered before
                if (!contextLocal.Visitors.Any(x => x.PhoneNumber == model.PhoneNumber))
                {
                    // In the case it wasn't create a new user
                    v = new Visitor();
                    v.ActivationCode = Session["ActivationCode"].ToString();
                    v.PhoneNumber    = Session["PhoneNumber"].ToString();
                    contextLocal.Visitors.Add(v);
                    contextLocal.SaveChanges();
                }
                else
                {
                    // In case it was just update with new data
                    v = contextLocal.Visitors.Where(x => x.PhoneNumber == model.PhoneNumber).FirstOrDefault();
                    v.ActivationCode = Session["ActivationCode"].ToString();
                    v.PhoneNumber    = Session["PhoneNumber"].ToString();
                    contextLocal.SaveChanges();
                }

                int  i             = 0;
                bool seatsReserved = false;
                // Check if picked seats are available
                foreach (ProjectionSeat s in contextLocal.ProjectionSeats.Where(x => x.ProjectionID.ToString() == model.ProjectionId).ToList())
                {
                    if (s.SeatID.ToString() == AllSeats[i] && s.IsReserved)
                    {
                        seatsReserved = true;
                    }
                }

                // If they are not reserved
                if (!seatsReserved)
                {
                    foreach (ProjectionSeat s in contextLocal.ProjectionSeats.Where(x => x.ProjectionID.ToString() == model.ProjectionId).ToList())
                    {
                        if (i < AllSeats.Count)
                        {
                            foreach (string seat in AllSeats)
                            {
                                // Reserve them
                                if (s.SeatID.ToString() == seat)
                                {
                                    s.IsReserved = true;
                                }
                            }
                        }
                    }

                    // Create a new reservation
                    Reservation r = new Reservation();

                    r.VisitorID     = v.VisitorID;
                    r.Visitor       = contextLocal.Visitors.Find(v.VisitorID);
                    r.PaymentMethod = contextLocal.PaymentMethods.FirstOrDefault();
                    r.Visitor       = v;
                    r.ProjectionID  = int.Parse(model.ProjectionId);
                    r.Projection    = contextLocal.Projections.Where(x => x.ProjectionID == r.ProjectionID).FirstOrDefault();
                    // Used to check if the reservation was paid for later
                    r.ReservationCompleted = true;
                    r.ReservationDate      = DateTime.Now;
                    r.ExpiryDate           = r.Projection.DateTimeStart.Subtract(new TimeSpan(0, 30, 0));
                    // Used to check if canceled or not later
                    r.IsDeleted = false;

                    contextLocal.Reservations.Add(r);
                    contextLocal.SaveChanges();
                }
                else
                {
                    return(Content("Somebody reserved the seats meanwhile!"));
                }

                Session["ActivationCode"] = null;
                Session["PhoneNumber"]    = null;
            }
            else
            {
                Session["ActivationCode"] = null;
                Session["PhoneNumber"]    = null;

                model.ErrorMessage = "Invalid Activation Code!";
                return(RedirectToAction("Registration", model));
            }
            return(RedirectToAction("Cinema", "../Local", new { Reservation = "Your reservation has been made!" }));
        }