public ActionResult Pay([ModelBinder(typeof(JsonBinder<PayRequest>))]PayRequest payRequest) { try { var token = Request.Headers["Token"]; if (!CheckToken(token)) return ApiResponse.NotSignIn; var guid = new Guid(token); using (var context = new DriverDBContext()) { var user = context.Users.SingleOrDefault(x => x.Id == guid); if (user == null) { return ApiResponse.UserNotExist; } user.ExpirationTime = UpdateExpirationTime(user.ExpirationTime, payRequest.PostageType); user.Amount += payRequest.Amount + ","; user.PostageTypes += payRequest.PostageType + ","; user.Paychannel += payRequest.Paychannel + ","; context.SaveChanges(); return ApiResponse.OK(user.ExpirationTime.ToShortDateString()); } } catch (Exception ex) { var logger = LogManager.GetLogger(typeof(HttpRequest)); logger.Error("------------------------api/Pay error-------------------------------\r\n" + ex.Message); return ApiResponse.UnknownError; } }
public ActionResult ChangePassword([ModelBinder(typeof(JsonBinder<ChangePasswordRequest>))]ChangePasswordRequest changePasswordRequest) { try { var token = Request.Headers["Token"]; if (!CheckToken(token)) return ApiResponse.NotSignIn; var guid = new Guid(token); using (var context = new DriverDBContext()) { var user = context.Users.SingleOrDefault(x => x.Id == guid); if (user == null) { return ApiResponse.UserNotExist; } if (user.Password != changePasswordRequest.OldPassword) { return ApiResponse.OldPasswordError; } user.Password = changePasswordRequest.NewPassword; context.Users.AddOrUpdate(user); context.SaveChanges(); HttpRuntime.Cache.Remove(token); return ApiResponse.OK("你需要重新登录"); } } catch (Exception ex) { var logger = LogManager.GetLogger(typeof(HttpRequest)); logger.Error("------------------------api/ChangePassword error-------------------------------\r\n" + ex.Message); return ApiResponse.UnknownError; } }
public ActionResult SignIn([ModelBinder(typeof(JsonBinder<SignInRequest>))]SignInRequest signInRequest) { try { using (var context = new DriverDBContext()) { var user = context.Users.SingleOrDefault(x => x.PhoneNumber == signInRequest.PhoneNumber); if (user == null) { return ApiResponse.UserNotExist; } if (user.Password != signInRequest.Password) { return ApiResponse.PasswordError; } var token = user.Id.ToString(); HttpRuntime.Cache.Add(token, token, null, DateTime.Now.AddMonths(1), Cache.NoSlidingExpiration, CacheItemPriority.High, null); Response.Headers.Add("X-Token", token); Response.Headers.Add("Access-Control-Expose-Headers", "X-Token"); return ApiResponse.OK(JsonConvert.SerializeObject(user.ToSignInResponse())); } } catch (Exception ex) { var logger = LogManager.GetLogger(typeof(HttpRequest)); logger.Error("------------------------api/SignIn error-------------------------------\r\n" + ex.Message); return ApiResponse.UnknownError; } }
public ActionResult GetAllPositions() { try { var token = Request.Headers["Token"]; if (!CheckToken(token)) return ApiResponse.NotSignIn; var guid = new Guid(token); using (var context = new DriverDBContext()) { var user = context.Users.SingleOrDefault(x => x.Id == guid); if (user == null) { return ApiResponse.UserNotExist; } if (user.ExpirationTime < DateTime.Now) { return ApiResponse.Expired; } var begin = DateTime.Now.AddDays(-1); var data = context.Positions.Where( x => x.UploadTime >= begin&&(!string.IsNullOrEmpty(x.Address))).ToList(); var positions = data.Select( x => new GetPositionsResponse.Position() { Latitude = x.Latitude, Longitude = x.Longitude, Address = x.Address, UploadTime = x.UploadTime }).ToList(); var result = new GetPositionsResponse() { Positions = positions }; return ApiResponse.OK(JsonConvert.SerializeObject(result)); } } catch (Exception ex) { var logger = LogManager.GetLogger(typeof(HttpRequest)); logger.Error("------------------------api/AllPositions error-------------------------------\r\n" + ex.Message); return ApiResponse.UnknownError; } }
public ActionResult SignUp([ModelBinder(typeof(JsonBinder<SignUpRequest>))]SignUpRequest signUpRequest) { try { if (signUpRequest == null) return ApiResponse.ParameterError; Regex dReg = new Regex("[0-9]{11,11}"); var isPhoneNumber = dReg.IsMatch(signUpRequest.PhoneNumber.Trim()); if (!isPhoneNumber) { return ApiResponse.NotPhoneNumber; } using (var context = new DriverDBContext()) { var count = context.Users.Count(x => x.PhoneNumber == signUpRequest.PhoneNumber); if (count > 0) { return ApiResponse.PhoneNumberAlreadySignUp; } count = context.Users.Count(x => x.CarNumber == signUpRequest.CarNumber); if (count > 0) { return ApiResponse.CarNumberAlreadySignUp; } var guid = Guid.NewGuid(); var now = DateTime.Now; var data = new User() { Id = guid, RegsiterTime = now, PhoneNumber = signUpRequest.PhoneNumber, CarNumber = signUpRequest.CarNumber, CarType = signUpRequest.CarType, Password = signUpRequest.Password, Valid = true, ExpirationTime = now.AddMonths(1) }; context.Users.Add(data); context.SaveChanges(); return ApiResponse.OK(guid.ToString()); } } catch (Exception ex) { var logger = LogManager.GetLogger(typeof(HttpRequest)); logger.Error("------------------------api/SignUp error-------------------------------\r\n" + ex.Message); return ApiResponse.UnknownError; } }
public ActionResult PostVersion() { using (var ctx = new DriverDBContext()) { using (System.Data.Entity.DbContextTransaction dbTran = ctx.Database.BeginTransaction()) { try { var httpPostedFile = Request.Files["APK"]; var folderPath = Server.MapPath("~/APK"); if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } var fullPath = Server.MapPath("~/APK/" + httpPostedFile.FileName); if (System.IO.File.Exists(fullPath)) { System.IO.File.Delete(fullPath); } var versionCode = Request.Form["VersionCode"]; var versionName = Request.Form["VersionName"]; var appVersion = new AppVersion() { VersionCode = Convert.ToInt32(versionCode), VersionName = versionName, FileName = httpPostedFile.FileName }; ctx.AppVersions.Add(appVersion); ctx.SaveChanges(); httpPostedFile.SaveAs(fullPath); dbTran.Commit(); } catch (Exception ex) { var logger = LogManager.GetLogger(typeof(HttpRequest)); logger.Error("------------------------api/PostVersion error-------------------------------\r\n" + ex.Message); dbTran.Rollback(); return new RedirectResult("~/version?msg=�ϴ�����"); } } } return new RedirectResult("~/version?msg=�ϴ��ɹ�"); }
public ActionResult GetVersion() { try { AppVersion appVersion; using (var ctx=new DriverDBContext()) { appVersion = ctx.AppVersions.OrderByDescending(x => x.VersionCode).FirstOrDefault(); } var result = new GetVersionResponse() { VersionName = appVersion.VersionName, VersionCode = appVersion.VersionCode, DownloadUrl = Request.Url.Authority+"/apk/" + appVersion.FileName }; return ApiResponse.OK(JsonConvert.SerializeObject(result)); } catch (Exception) { return ApiResponse.UnknownError; } }
public ActionResult Voice() { List<VoiceViewModel> list; using (var context = new DriverDBContext()) { var positions = context.Positions; var users = context.Users; list = (from p in positions join u in users on p.UploadBy equals u.Id where !string.IsNullOrEmpty(p.Voice) orderby p.UploadTime descending select new VoiceViewModel() { CarNumber = u.CarNumber, Source = p.Voice, UploadTime = p.UploadTime }).ToList(); } return View(list); }
public ActionResult UpdateUserInfo([ModelBinder(typeof(JsonBinder<UpdateUserInfoRequest>))]UpdateUserInfoRequest updateUserInfoRequest) { try { var token = Request.Headers["Token"]; if (!CheckToken(token)) return ApiResponse.NotSignIn; var guid = new Guid(token); using (var context = new DriverDBContext()) { var user = context.Users.SingleOrDefault(x => x.Id == guid); if (user == null) { return ApiResponse.UserNotExist; } user.CarNumber = updateUserInfoRequest.CarNumber; user.CarType = updateUserInfoRequest.CarType; user.PhoneNumber = updateUserInfoRequest.PhoneNumber; context.Users.AddOrUpdate(user); context.SaveChanges(); return ApiResponse.OK(); } } catch (Exception ex) { var logger = LogManager.GetLogger(typeof(HttpRequest)); logger.Error("------------------------api/UpdateUserInfo error-------------------------------\r\n" + ex.Message); return ApiResponse.UnknownError; } }
public ActionResult UploadPosition([ModelBinder(typeof(JsonBinder<UploadPositionRequest>))]UploadPositionRequest uploadPositionRequest) { try { var token = Request.Headers["Token"]; if (!CheckToken(token)) return ApiResponse.NotSignIn; var guid = new Guid(token); using (var context = new DriverDBContext()) { var user = context.Users.SingleOrDefault(x => x.Id == guid); if (user == null) { return ApiResponse.UserNotExist; } var postion = new Position() { Id = Guid.NewGuid() }; postion.UploadBy = user.Id; postion.Address = HttpUtility.UrlDecode(uploadPositionRequest.Address, Encoding.UTF8); postion.Latitude = uploadPositionRequest.Latitude; postion.Longitude = uploadPositionRequest.Longitude; postion.UploadTime = DateTime.Now; if (!string.IsNullOrEmpty(uploadPositionRequest.Voice)) { Task.Run(() => { try { var bytes = Convert.FromBase64String(uploadPositionRequest.Voice); var voiceName = user.Id + "_" + CurrentTime; var voicePath = Server.MapPath("~/Voice/"); var sourceFileFullName = voicePath + voiceName + ".3gp"; var finalFileFullName = voicePath + voiceName + ".mp4"; if (!Directory.Exists(voicePath)) { Directory.CreateDirectory(voicePath); } using (var fs = new FileStream(sourceFileFullName, FileMode.Create)) { fs.Write(bytes, 0, bytes.Length); fs.Close(); } var ffMpeg = new FFMpegConverter(); ffMpeg.ConvertMedia(sourceFileFullName, finalFileFullName, Format.mp4); System.IO.File.Delete(sourceFileFullName); postion.Voice = finalFileFullName; } catch (Exception ex) { var logger = LogManager.GetLogger(typeof (HttpRequest)); logger.Error( "------------------------api/Voice error-------------------------------\r\n" + ex.Message); } }); } context.Positions.Add(postion); context.SaveChanges(); return ApiResponse.OK(); } } catch (Exception ex) { var logger = LogManager.GetLogger(typeof(HttpRequest)); logger.Error("------------------------api/UploadPosition error-------------------------------\r\n" + ex.Message); return ApiResponse.UnknownError; } }