public void OnAuthorization(AuthorizationFilterContext context) { AllowAnonymousAttribute allowAnonymous = (context.ActionDescriptor as ControllerActionDescriptor).MethodInfo.GetCustomAttribute(typeof(AllowAnonymousAttribute), false) as AllowAnonymousAttribute; if (allowAnonymous == null) { const string prefix = "Bearer "; bool result = context.HttpContext.Request.Headers.TryGetValue("Authorization", out StringValues authorization); ResponseResult responseResult = CommonFactory.CreateResponseResult; //如果不包含授权信息 if (!result) { context.Result = new JsonResult(responseResult.Failed("未授权的访问")); return; } string info = authorization.ToString().Trim(); //空字符 不包含Bearer if (string.IsNullOrWhiteSpace(info) || !info.Contains(prefix)) { context.Result = new JsonResult(responseResult.Failed("未授权的访问")); return; } //token错误 if (!_authService.ValidateToken(info.Substring(prefix.Length))) { context.Result = new JsonResult(responseResult.Failed("未授权的访问")); return; } } }
public async Task <IActionResult> GetCompanyByIdAsync(string id) { if (string.IsNullOrEmpty(id)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "Company Id can't be empty."))); } var company = await _companyRepository.GetCompanyByIdAsync(id); if (company is null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "Company isn't found."))); } var result = Mapper.Map <CompanyOutputModel>(company); if (company.ContactIds != null) { var contacts = await _contactRepository.GetContactsByListOfIdsAsync(company.ContactIds); result.Contacts = Mapper.Map <List <ContactOutputModel> >(contacts); } return(Ok(ResponseResult.SucceededWithData(result))); }
public async Task <IActionResult> ConfirmEmail(string userId, string code) { if (userId == null || code == null) { return(Json(ResponseResult.Failed("输入不正确!"))); } var user = await _userManager.FindAsync(s => new IdentityUser { EmailConfirmed = s.EmailConfirmed, SecurityStamp = s.SecurityStamp, EditedTime = s.EditedTime, ConcurrencyStamp = s.ConcurrencyStamp, Email = s.Email, Id = s.Id }, p => p.Id.Equals(userId)); if (user == null) { return(Json(ResponseResult.Failed("输入不正确!"))); } IdentityResult confirm = new IdentityResult(); if (!user.EmailConfirmed) { confirm = await _userManager.ConfirmEmailAsync(user, code); } if (confirm.Succeeded || user.EmailConfirmed) { await _signInManager.SignInAsync(user, isPersistent : false); return(Json(await tokenManager.SignInResultAsync(user))); } return(Json(ResponseResult.Failed("输入不正确!"))); }
public async Task <IActionResult> RegisterAsync([RegularExpression(@"^[1]+[3,4,5,7,8]+\d{9}", ErrorMessage = "你输入的电话号码不正确")] string phone, string code, string xcode) { ResponseResult responseResult = VCheakCode(code); if (!responseResult.Succeeded) { return(Json(responseResult)); } if (xcode.Equals(Session.GetGenerateRandomCode())) { IdentityUser user = new IdentityUser { UserName = phone, PhoneNumber = phone, PhoneNumberConfirmed = true }; var result = await _userManager.CreateAsync(user, "Qwe@#23"); if (result.Succeeded) { await _signInManager.SignInAsync(user, true); return(Json(await tokenManager.SignInResultAsync(user))); } else { return(Json(ResponseResult.Failed("注册失败,可能密码不符合要求", "注册失败,可能已经注册账号", "已注册,请直接登录"))); } } return(Json(ResponseResult.Failed("注册失败,短信验证码不正确"))); }
public async Task <IActionResult> GetIndividualDetailsByNationalId(string nationalId) { if (string.IsNullOrEmpty(nationalId)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "National Id can't be empty."))); } var individual = await _individualRepository.GetIndividualByNationalIdAsync(nationalId); if (individual is null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "Individual isn't found."))); } var result = new IndividualDetailsOutputModel() { ContractInformation = Mapper.Map <ContractOutputModel>(individual.Contract), IndividualInformation = Mapper.Map <IndividualOutputModel>(individual), SummaryInformation = Mapper.Map <SummaryInformation>(individual.Contract.ContractData) }; var subjectRole = await _subjectRoleRepository.GetSubjectRoleByCustomerAndContractCodeAsync(individual.CustomerCode, individual.Contract.ContractCode); result.ContractInformation.SubjectRole = subjectRole.RoleOfCustomer.ToString(); return(Ok(ResponseResult.SucceededWithData(result))); }
public async Task <IActionResult> AddContactyAsync(ContactInputModel model) { if (string.IsNullOrEmpty(model.CompanyId)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "Company id can't be empty."))); } if (string.IsNullOrEmpty(model.Name)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "Contact name can't be empty."))); } var company = await _companyRepository.GetCompanyByIdAsync(model.CompanyId); if (company is null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "Company not found"))); } var contact = Contact.New(model.Name, company.Id); await _contactRepository.AddContactAsync(contact); company.AddContact(contact.Id); await _companyRepository.UpdateCompanyAsync(company); var result = Mapper.Map <ContactOutputModel>(contact); return(Ok(ResponseResult.SucceededWithData(result))); }
public async Task <IActionResult> Register([FromBody] RegisterViewModel model) { if (ModelState.IsValid) { string callbackUrl = string.Empty; ResponseResult responseResult = VCheakCode(model.Code); if (!responseResult.Succeeded) { return(Json(responseResult)); } IdentityUser user = model.ByPhone ? new IdentityUser { UserName = model.Phone } : new IdentityUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { Logger.LogInformation(3, "注册了一个新的用户."); if (!model.ByPhone) { var codeEmail = await _userManager.GenerateEmailConfirmationTokenAsync(user); callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = codeEmail }, protocol: HttpContext.Request.Scheme); await _emailSender.SendEmailAsync(model.Email, user.UserName + ":请完成注册验证", $"请点击该链接完成账号注册: <a href='{callbackUrl}'>点我完成注册!</a>有效时间为:10分钟,请你尽快填写。"); } else { if (!model.XCode.Equals(Session.GetGenerateRandomCode())) { return(Json(ResponseResult.Failed("注册失败,短信验证码不正确"))); } else { var p = await _userManager.UpdateConfirmPhone(user); if (!p.Succeeded) { return(Json(p)); } else { await _signInManager.SignInAsync(user, true); return(Json(await tokenManager.SignInResultAsync(user))); } } } } return(Json(result)); } return(Failed()); }
public IActionResult DeleteMenu(int?id) { ResponseResult responseResult = CommonFactory.CreateResponseResult; //if (_menuService.DeleteMenu(id)) //{ // return Ok(responseResult.Success("菜单删除成功")); //} return(Ok(responseResult.Failed("菜单删除失败"))); }
public IActionResult UpdateMenu(MenuModel menuModel) { ResponseResult responseResult = CommonFactory.CreateResponseResult; //if (_menuService.UpdateMenu(menuModel)) //{ // return Ok(responseResult.Success("菜单修改成功")); //} return(Ok(responseResult.Failed("菜单修改失败"))); }
public IActionResult AddEenu(MenuModel menuModel) { ResponseResult responseResult = CommonFactory.CreateResponseResult; if (_menuService.AddMenu(menuModel)) { return(Ok(responseResult.Success("菜单添加成功"))); } return(Ok(responseResult.Failed("菜单添加失败"))); }
public override void OnException(ExceptionContext context) { ColorizeException("Exception:"); var result = new ObjectResult(ResponseResult.Failed()) { StatusCode = (int)HttpStatusCode.InternalServerError }; context.Result = result; }
public async Task <IActionResult> GetAllFriendshipsByDatasetIdAsync(long id) { var dataset = await _datasetRepository.GetDatasetByIdAsync(id); if (dataset == null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "Dataset isn't found."))); } var friendships = await _friendShipRepository.GetAllFriendshipsByDatasetIdAsync(id); var result = Mapper.Map <List <FriendshipOutputModel> >(friendships); return(Ok(ResponseResult.SucceededWithData(result))); }
public async Task <IActionResult> AddCompanyAsync(CompanyInputModel model) { if (string.IsNullOrEmpty(model.Name)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "Company name can't be empty."))); } var company = Company.New(model.Name, model.NumOfEmpolyees); await _companyRepository.AddCompanyAsync(company); var result = Mapper.Map <CompanyOutputModel>(company); return(Ok(ResponseResult.SucceededWithData(result))); }
public async Task <IActionResult> CreateDatasetAsync(DatasetInputModel model) { if (string.IsNullOrEmpty(model.Name)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "Dataset name can't be empty."))); } var dataset = Dataset.New(model.Name); await _datasetRepository.AddDatasetAsync(dataset); var result = Mapper.Map <DatasetOutputModel>(dataset); return(Ok(ResponseResult.SucceededWithData(result))); }
//[ServiceFilter(typeof(ValidateTokenAttribute))] public IActionResult GetAuth([FromBody] LoginRequestModel loginRequest) { loginRequest.Username = loginRequest.Username.Trim(); loginRequest.Password = MD5Encrypting.MD5Encrypt64(MD5Encrypting.MD5Encrypt16(loginRequest.Password.Trim()));//两次加密安全性更高 ResponseResult responseResult = CommonFactory.CreateResponseResult; UserModel user = _userService.GetUser(loginRequest); if (user == null || user.IsDelete == DataStatusEnum.Delete) { return(Ok(responseResult.Failed("用户名或者密码错误"))); } if (user.AccountStatus == AccountStatusEnum.PendingReview) { return(Ok(responseResult.Failed("账号待审核通过中"))); } if (user.AccountStatus == AccountStatusEnum.Locked) { return(Ok(responseResult.Failed("账号已被锁定"))); } if (user.AccountStatus == AccountStatusEnum.Forbidden) { return(Ok(responseResult.Failed("账号已被禁用"))); } string token = _authService.CreateToken(new AuthContext() { ID = user.ID, Username = user.Username, Email = user.Email, Role = "testRole", }); return(Ok(responseResult.ResponseData(token))); }
public async Task <ResponseResult <ProductEntityDomain> > InvokeAsync(ProductEntityDomain productEntityDomain) { if (!productEntityDomain.Validate()) { return(ResponseResult <ProductEntityDomain> .Failed(400, "Existem campos inválidos", productEntityDomain.Notifications)); } productEntityDomain.Id = Guid.NewGuid().ToString(); productEntityDomain.Active = 1; productEntityDomain.CreatedAt = DateTime.Now; ProductEntityDomain resultData = await _productRepository.CreateProductAsync(productEntityDomain); return(ResponseResult <ProductEntityDomain> .Succeeded(resultData, 201)); }
public async Task <IActionResult> SearchIndividualByNationalId(string nationalId) { if (string.IsNullOrEmpty(nationalId)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "National Id can't be empty."))); } var individual = await _individualRepository.GetIndividualByNationalIdAsync(nationalId); if (individual is null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "no hit information"))); } return(Ok(ResponseResult.SucceededWithData("One Single hit"))); }
public void OnActionExecuting(ActionExecutingContext context) { //POST PUT 方法进行模型校验 string method = context.HttpContext.Request.Method; if ((method == "POST" || method == "PUT") && !context.ModelState.IsValid) { string message = context.ModelState.ToErrorMessage(); if (message != string.Empty) { ResponseResult responseResult = CommonFactory.CreateResponseResult; context.Result = new JsonResult(responseResult.Failed(message)); return; } } }
public async Task <IActionResult> GetContactByIdAsync(string id) { if (string.IsNullOrEmpty(id)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "Contact Id can't be empty."))); } var contact = await _contactRepository.GetContactByIdAsync(id); if (contact is null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "no hit information"))); } var result = Mapper.Map <ContactOutputModel>(contact); return(Ok(ResponseResult.SucceededWithData(result))); }
public override async Task OnExceptionAsync(ExceptionContext context) { if (context is null) { throw new ArgumentNullException(nameof(context)); } ColorizeException("Exception:"); Console.Write($" {context.Exception}"); Console.WriteLine(); var result = new ObjectResult(ResponseResult.Failed()) { StatusCode = (int)HttpStatusCode.InternalServerError }; context.Result = result; }
public async Task <IActionResult> AddContactToCompanyAsync(string id, AddContactCompanyInputModel model) { if (string.IsNullOrEmpty(id)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "Company Id can't be empty."))); } var company = await _companyRepository.GetCompanyByIdAsync(id); if (company is null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "Company isn't found."))); } if (string.IsNullOrEmpty(model.ContactId)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "Contact Id can't be empty."))); } var contact = await _contactRepository.GetContactByIdAsync(model.ContactId); if (contact is null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "Contact isn't found."))); } var isExist = company.ContactIds != null?company.ContactIds.FirstOrDefault(x => x == model.ContactId) : null; if (isExist != null) { return(BadRequest(ResponseResult.Failed(ErrorCode.Error, "Contact is already exist."))); } company.AddContact(model.ContactId); contact.AddCompany(company.Id); await _companyRepository.UpdateCompanyAsync(company); await _contactRepository.UpdateContactAsync(contact); return(Ok(ResponseResult.Succeeded())); }
public async Task <IActionResult> GetAllUsersByDatasetIdAsync(long id) { var dataset = await _datasetRepository.GetDatasetByIdAsync(id); if (dataset == null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "Dataset isn't found."))); } var users = await _friendShipRepository.GetAllUniqueUsersWithFriendsCountByDatasetIdAsync(id); var result = new DatasetUsersOutputModel { Dataset = Mapper.Map <DatasetOutputModel>(dataset), Users = Mapper.Map <List <UserOutputModel> >(users) }; return(Ok(ResponseResult.SucceededWithData(result))); }
public async Task <IActionResult> DeleteContactByIdAsync(string id) { if (string.IsNullOrEmpty(id)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "Contact Id can't be empty."))); } var contact = await _contactRepository.GetContactByIdAsync(id); if (contact is null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "no hit information"))); } contact.Delete(); await _contactRepository.DeleteContactAsync(contact); return(Ok(ResponseResult.Succeeded())); }
public async Task <IActionResult> DeleteCompanyByIdAsync(string id) { if (string.IsNullOrEmpty(id)) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "Company Id can't be empty."))); } var company = await _companyRepository.GetCompanyByIdAsync(id); if (company is null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "Company isn't found."))); } company.Delete(); await _companyRepository.DeleteCompanyAsync(company); return(Ok(ResponseResult.Succeeded())); }
protected ResponseResult VCheakCode(string code) { if (code.IsNullOrEmpty()) { return(ResponseResult.Failed("图形验证码不能为空 ")); } if (Session == null) { return(ResponseResult.Failed("请刷新浏览器 ")); } if (CheakCode == null) { return(ResponseResult.Failed("图形验证码不正确")); } if (!CheakCode.Equals(code)) { return(ResponseResult.Failed("图形验证码不正确")); } Session.SetString(nameof(CheakCode), string.Empty); return(ResponseResult.Success()); }
public ResponseResult InitialSetup() { var response = CallApiInitialSetup(); if (response == null) { return(ResponseResult.Failed("Calling API is failed.")); } if (this.InsertMstItemToDB(response.MasterItems)) { return(ResponseResult.Failed("Insert MstItem to DB is failed.")); } if (this.InsertAppSettingToDB(response.AppSettingInfos)) { return(ResponseResult.Failed("Insert AppSetting to DB is failed.")); } return(ResponseResult.Succeed()); }
public async Task <IActionResult> UploadDataByDatasetIdAsync(long id, IFormFile file) { if (file == null) { return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "File can't be empty."))); } var dataset = await _datasetRepository.GetDatasetByIdAsync(id); if (dataset == null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "Dataset isn't found."))); } if (dataset.IsImported) { return(BadRequest(ResponseResult.Failed(ErrorCode.Error, "Dataset can't be imported more than once."))); } var friendships = new List <Friendship>(); using (StreamReader streamReader = new StreamReader(file.OpenReadStream())) { string line; while ((line = streamReader.ReadLine()) != null) { var fields = line.Split(' '); friendships.Add(Friendship.New(long.Parse(fields[0]), long.Parse(fields[1]), dataset)); } } await _friendShipRepository.AddDataAsync(friendships); dataset.Update(); await _datasetRepository.UpdateDatasetAsync(dataset); return(Ok(ResponseResult.Succeeded())); }
public async Task <IActionResult> DeleteDatasetByIdAsync(long id) { var dataset = await _datasetRepository.GetDatasetByIdAsync(id); if (dataset == null) { return(NotFound(ResponseResult.Failed(ErrorCode.Error, "Dataset isn't found."))); } var friendships = await _friendShipRepository.GetAllFriendshipsByDatasetIdAsync(id); foreach (var fs in friendships) { fs.Delete(); } dataset.Delete(); await _datasetRepository.UpdateDatasetAsync(dataset); await _friendShipRepository.UpdateListOfFriendshipsAsync(friendships); return(Ok()); }
public void OnActionExecuting(ActionExecutingContext context) { //POST PUT 方法进行模型校验 string method = context.HttpContext.Request.Method; if ((method == "POST" || method == "PUT") && !context.ModelState.IsValid) { //BindAttribute特性对JSON数据无效 IList <ParameterDescriptor> parameterDescriptors = context.ActionDescriptor.Parameters; //获取BindAttribute ParameterDescriptor parameterDescriptor = parameterDescriptors.Where(item => item.BindingInfo.PropertyFilterProvider is BindAttribute).SingleOrDefault(); BindAttribute bindAttribute = parameterDescriptor.BindingInfo.PropertyFilterProvider as BindAttribute; string message = context.ModelState.ToErrorMessageByBindAttribute(bindAttribute); if (message != string.Empty) { ResponseResult responseResult = CommonFactory.CreateResponseResult; context.Result = new JsonResult(responseResult.Failed(message)); return; } } }