Exemplo n.º 1
0
        public ActionResult Register()
        {
            var model = new RestaurantRegisterViewModel
            {
                Counties = db.Counties
            };

            return(View(model));
        }
Exemplo n.º 2
0
        public RestaurantRegisterViewModel InitVM(RestaurantRegisterViewModel vm)
        {
            int _id = 0;

            if (vm.R_County != null)
            {
                _id = db.Counties.Where(x => x.CountyName == vm.R_County).SingleOrDefault().Id;
            }

            var registVM = new RestaurantRegisterViewModel
            {
                R_Password      = null,
                checkR_Password = null,
                Counties        = db.Counties,
                Areas           = (_id == 0 ? null : addressService.GetAllAreas(_id))
            };

            return(registVM);
        }
Exemplo n.º 3
0
        public ActionResult Register(RestaurantRegisterViewModel registerMember)
        {
            //var errors = ModelState.Values.SelectMany(v => v.Errors);

            if (ModelState.IsValid)
            {
                if (!memberService.IdIsExist(registerMember.Id))
                {
                    ModelState.AddModelError("Id", "無效之統一編號,請重新確認");
                    var registVM = InitVM(registerMember);
                    return(View(registVM));
                }
                if (memberService.CheckId(registerMember.Id))
                {
                    var area = db.Counties.Where(x => x.CountyName == registerMember.R_County).Select(x => new { Id = x.Id });

                    ModelState.AddModelError("Id", "該統編已註冊過,請勿重複註冊");
                    var registVM = InitVM(registerMember);
                    return(View(registVM));
                }
                var checkAccount = memberService.AccountCheck(registerMember.R_Account);
                if (checkAccount == false)
                {
                    var area = db.Counties.Where(x => x.CountyName == registerMember.R_County).Select(x => new { Id = x.Id });

                    ModelState.AddModelError("R_Account", "該帳號已被註冊,請重新嘗試");
                    var registVM = InitVM(registerMember);
                    return(View(registVM));
                }

                string AuthCode = mailService.GetValidateCode(); //get random code
                double lat = 0.0, lng = 0.0;
                #region get lat and lon
                try
                {
                    var address         = registerMember.R_County + registerMember.R_Area + registerMember.DetailAddr;
                    var requestUri      = string.Format("http://maps.googleapis.com/maps/api/geocode/xml?address={0}", address);
                    var request         = WebRequest.Create(requestUri);
                    var response        = request.GetResponse();
                    var xdoc            = XDocument.Load(response.GetResponseStream());
                    var result          = xdoc.Element("GeocodeResponse").Element("result");
                    var locationElement = result.Element("geometry").Element("location");
                    lat = float.Parse(locationElement.Element("lat").Value);
                    lng = float.Parse(locationElement.Element("lng").Value);
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("DetailAddr", "地址剖析失敗,請確認地址是否有效。");
                    var registVM = InitVM(registerMember);
                    return(View(registVM));

                    throw e;
                }

                #endregion

                var localTime = DateTime.Now;

                TimeZoneInfo destTz =
                    TimeZoneInfo.FindSystemTimeZoneById("China Standard Time");
                var        registTime = TimeZoneInfo.ConvertTime(localTime, TimeZoneInfo.Local, destTz);
                Restaurant _newMember = new Restaurant()
                {
                    Id              = registerMember.Id,
                    R_Account       = registerMember.R_Account,
                    R_Password      = registerMember.R_Password,
                    R_PhoneNum      = registerMember.R_PhoneNum,
                    R_Name          = registerMember.R_Name,
                    Email           = registerMember.Email,
                    SignUpTime      = registTime,
                    R_County        = registerMember.R_County,
                    R_Area          = registerMember.R_Area,
                    R_DetailAddress = registerMember.DetailAddr,
                    AuthCode        = AuthCode,
                    StartTime       = registerMember.StartTime,
                    CloseTime       = registerMember.CloseTime,
                    StatusFlg       = false,
                    isCheck         = false,
                    Lat             = lat,
                    Lng             = lng,
                    WaitListSwitch  = false
                };

                string TempMail = System.IO.File.ReadAllText(
                    Server.MapPath("~/Views/Shared/RegisterEmailTemplate.html"));

                UriBuilder ValidateUrl = new UriBuilder(Request.Url)
                {
                    Path = Url.Action("EmailValidate", "Restaurant"
                                      , new
                    {
                        UserName = registerMember.Id,
                        AuthCode = AuthCode
                    })
                };

                memberService.Register(_newMember);
                //Write user data to validate mail sample
                string MailBody = mailService.GetRegisterMailBody(TempMail,
                                                                  registerMember.R_Name,
                                                                  ValidateUrl.ToString().Replace("%3F", "?"));
                mailService.SendRegisterMail(MailBody, registerMember.Email);

                TempData["RegisterState"] = "註冊成功,請到個人信箱驗證Email地址";

                return(View("RegisterResult"));
            }
            else
            {
                var registVM = InitVM(registerMember);
                return(View(registVM));
            }
        }
Exemplo n.º 4
0
 public JsonResult AccountCheck(RestaurantRegisterViewModel registerMember)
 {
     return(Json(memberService.AccountCheck(registerMember.R_Account),
                 JsonRequestBehavior.AllowGet));
 }