public async Task <IActionResult> ResetPassword([FromBody] ResetPasswordViewModel model) { var obj = new ResponseVMAuth(); var user = UserManager.Users.SingleOrDefault(x => x.Email == model.Email); if (user == null) { obj.Message = "user does not exist or is not confirmed"; obj.IsSucess = false; return(BadRequest(obj)); } else if (user.CodeToSend != model.Code) { obj.Message = "Your Code is not Correct"; obj.IsSucess = false; return(BadRequest(obj)); } else { var result = await UserManager.ResetPasswordAsync(user, user.GeneratedCode, model.Password); if (result.Succeeded) { obj.Message = "Success"; obj.IsSucess = true; return(Ok(obj)); } else { obj.Message = "user does not exist or is not confirmed"; obj.IsSucess = false; return(BadRequest(obj)); } } }
public async Task <IActionResult> Login([FromBody] LoginModel loginModel) { var obj = new ResponseVMAuth(); var user = await UserManager.FindByEmailAsync(loginModel.Email); if (user == null) { obj.Message = Language == Language.Arabic ? "الايميل غير موجود" : "Email not Found"; return(BadRequest(obj)); } else { if (user != null && await UserManager.CheckPasswordAsync(user, loginModel.Password)) { var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, user.UserName), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), }; var SigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("MySuberSecureKey")); var token = new JwtSecurityToken( issuer: "http://oec.com", audience: "http://oec.com", expires: DateTime.UtcNow.AddDays(5), claims: claims, signingCredentials: new Microsoft.IdentityModel.Tokens.SigningCredentials(SigningKey, SecurityAlgorithms.HmacSha256) ); var value = UnitOfWork.CopunsUsedService.GetPaymentYearByUserId(user.Id, DateTime.Today); user.Points = (int)value / 100; obj.Data = user; obj.IsSucess = true; obj.Message = "success"; obj.token = new JwtSecurityTokenHandler().WriteToken(token); obj.expiration = token.ValidTo; //edit FCMToken user.FCMToken = loginModel.FCMToken; var result = await UserManager.UpdateAsync(user); if (result == IdentityResult.Success) { return(Ok(obj)); } else { obj.Message = "Invalid Attempt For FCMToken"; return(BadRequest(obj)); } } else { obj.Message = Language == Language.Arabic ? "كلمة المرور غير صحيحة" : "Password not Correct"; return(BadRequest(obj)); } } }
public IActionResult ApplicationImages([FromBody] ApplicationImages DetailsModel) { var obj = new ResponseVMAuth(); var Images = new Dictionary <string, string>(); string ImagePath = "images/deviceImages"; // string size; // if(DetailsModel.DeviceWidth*DetailsModel.DeviceHeight <= 640*960) // { // size = "size1"; // } //else if (DetailsModel.DeviceWidth * DetailsModel.DeviceHeight <= 750 * 1334) // { // size = "size2"; // } // else // { // size = "size3"; // } if (DetailsModel.AppLanguage.ToLower() == "arabic" || DetailsModel.AppLanguage.ToLower() == "ar") { Images.Add("water", ImagePath + "/Water-reminder_ar.jpg"); Images.Add("consalt", ImagePath + "/My-Specialist_ar.jpg"); Images.Add("gym", ImagePath + "/Activity-Recorder_ar.jpg"); Images.Add("weight", ImagePath + "/Weight-Calculator_ar.jpg"); Images.Add("prog", ImagePath + "/My-Program_ar.jpg"); Images.Add("cal", ImagePath + "/calorie-calculator_ar.jpg"); } else //english { Images.Add("water", ImagePath + "/Water-reminder.jpg"); Images.Add("consalt", ImagePath + "/My-Specialist.jpg"); Images.Add("gym", ImagePath + "/Activity-Recorder.jpg"); Images.Add("weight", ImagePath + "/Weight-Calculator.jpg"); Images.Add("prog", ImagePath + "/My-Program.jpg"); Images.Add("cal", ImagePath + "/calorie-calculator.jpg"); } obj.Data = Images; obj.Message = "Success"; obj.IsSucess = true; return(Ok(obj)); }
public async Task <IActionResult> Register([FromBody] RegisterVm vm) { var obj = new ResponseVMAuth(); var userd = UserManager.Users.FirstOrDefault(x => x.Email == vm.Email); if (UserManager.Users.Any(usr => usr.UserName == vm.UserName)) { obj.Message = Language == Language.Arabic ? "اسم المستخدم موجود" : "UserName Aready In Use"; obj.IsSucess = false; return(BadRequest(obj)); } else if (UserManager.Users.Any(usr => usr.Email == vm.Email)) { obj.Message = Language == Language.Arabic ? "الايميل موجود" : "Email Aready In Use"; obj.IsSucess = false; return(BadRequest(obj)); } else if (UserManager.Users.Any(usr => usr.PhoneNumber == vm.PhoneNumber)) { obj.Message = Language == Language.Arabic ? "رقم الموبايل موجود" : "PhoneNumber Aready In Use"; obj.IsSucess = false; return(BadRequest(obj)); } else { if (ModelState.IsValid) { var user = new ApplicationUser() { UserName = vm.UserName, Email = vm.Email, PhoneNumber = vm.PhoneNumber, FirstName = vm.FirstName, LastName = vm.LastName, CityId = vm.CityId }; if (!string.IsNullOrEmpty(vm.PhotoName)) { var name = Guid.NewGuid().ToString(); var photoName = vm.PhotoName; int index = photoName.LastIndexOf("."); var extinsion = photoName.Substring(index); string path = Path.Combine(_env.WebRootPath, "Files/ProfileImages"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string filename = Path.Combine(path + "/" + name + extinsion); var base64array = Convert.FromBase64String(vm.Photo); System.IO.File.WriteAllBytes(filename, base64array); user.Photo = $"Files/ProfileImages/" + name + extinsion; } var result = await UserManager.CreateAsync(user, vm.Password); if (result.Succeeded) { await SignInManager.SignInAsync(user, false); var packages = UnitOfWork.PackagesService.GetPackages().ToList(); user.SubscripeType = vm.OfferLimit; await UserManager.UpdateAsync(user); // foreach (var it in packages) { var subscribeModel = new SubscribesViewModel { UserId = user.Id, PackageID = it.Id, PackageName = it.Name, SubscribeStatus = SubscribeStatus.Active, SubscribeType = (SubscribeType)vm.OfferLimit, EndDate = DateTime.Now.AddDays(vm.OfferEndDate), UserName = user.UserName, UserPhone = user.PhoneNumber, UserEmail = user.Email, }; UnitOfWork.SubscribesService.AddOffer(subscribeModel); UnitOfWork.Commit(); } obj.IsSucess = true; obj.Message = Language == Language.Arabic ? "تم التسجيل بنجاح" : "Success Register Done"; obj.Data = user; return(Ok(obj)); } else { obj.Message = Language == Language.Arabic ? "حاول التسجيل مرة اخرى" : "Please Try Again"; obj.IsSucess = false; return(BadRequest(obj)); } } else { obj.Message = Language == Language.Arabic ? "حاول التسجيل مرة اخرى" : "Please Try Again"; obj.IsSucess = false; return(BadRequest(obj)); } } }
public async Task <IActionResult> EditProfile([FromBody] AccountVM vm) { string pathFile = Path.Combine(_env.WebRootPath, "Files/ProfileImages"); if (!Directory.Exists(pathFile)) { Directory.CreateDirectory(pathFile); } var appUser = await UserManager.FindByIdAsync(vm.Id); var obj = new ResponseVMAuth(); try { if (ModelState.IsValid) { if (UserManager.Users.Any(usr => usr.UserName == vm.UserName && usr.UserName != appUser.UserName)) { obj.Message = Language == Language.Arabic ? "اسم المستخدم موجود": "UserName Aready In Use"; obj.IsSucess = false; return(BadRequest(obj)); } else if (UserManager.Users.Any(usr => usr.Email == vm.Email && usr.Email != appUser.Email)) { obj.Message = Language == Language.Arabic ? "الايميل موجود":"Email Aready In Use"; obj.IsSucess = false; return(BadRequest(obj)); } else if (UserManager.Users.Any(usr => usr.PhoneNumber == vm.PhoneNumber && usr.PhoneNumber != appUser.PhoneNumber)) { obj.Message = Language == Language.Arabic ? "رقم الموبايل موجود":"PhoneNumber Aready In Use"; obj.IsSucess = false; return(BadRequest(obj)); } else { if (appUser.Photo != null && vm.Photo != null) { var name = Guid.NewGuid().ToString(); var photoName = vm.PhotoName; int index = photoName.LastIndexOf("."); var extinsion = photoName.Substring(index); string path = Path.Combine(_env.WebRootPath, "Files/ProfileImages/" + name + extinsion); var oldPlaceImg = appUser.Photo; string pathdel = Path.Combine(_env.WebRootPath, "Files/ProfileImages"); int indx = oldPlaceImg.LastIndexOf("/"); oldPlaceImg = oldPlaceImg.Substring(indx); if (System.IO.File.Exists(pathdel + oldPlaceImg)) { System.IO.File.Delete(pathdel + oldPlaceImg); } var base64array = Convert.FromBase64String(vm.Photo); System.IO.File.WriteAllBytes(path, base64array); appUser.Photo = $"Files/ProfileImages/" + name + extinsion; } else if (appUser.Photo == null && vm.Photo != null && vm.Photo != "") { var name = Guid.NewGuid().ToString(); var photoName = vm.PhotoName; int index = photoName.LastIndexOf("."); var extinsion = photoName.Substring(index); string path = Path.Combine(_env.WebRootPath, "Files/ProfileImages/" + name + extinsion); var base64array = Convert.FromBase64String(vm.Photo); System.IO.File.WriteAllBytes(path, base64array); appUser.Photo = $"Files/ProfileImages/" + name + extinsion; } appUser.PaidSaved = UnitOfWork.CopunsUsedService.GetTotalPaymentByUserId(appUser.Id); appUser.Email = vm.Email; appUser.UserName = vm.UserName; appUser.PhoneNumber = vm.PhoneNumber; appUser.CityId = vm.CityId; appUser.FirstName = vm.Address; UserStore <ApplicationUser> store = new UserStore <ApplicationUser>(_context); var result = await UserManager.UpdateAsync(appUser); if (result == IdentityResult.Success) { appUser = await UserManager.FindByIdAsync(vm.Id); var value = UnitOfWork.CopunsUsedService.GetTotalPaymentByUserId(appUser.Id); appUser.Points = (int)value / 100; obj.Data = appUser; obj.IsSucess = true; obj.Message = "Success"; return(Ok(obj)); } else { string str = ""; foreach (var error in result.Errors) { str += error + Environment.NewLine; } obj.IsSucess = false; obj.Message = str; return(BadRequest(obj)); } } } else { string str = ""; foreach (var item in ModelState.Values) { foreach (var error in item.Errors) { str += error.ErrorMessage + Environment.NewLine; } } obj.IsSucess = false; obj.Message = str; return(BadRequest(obj)); } } catch (Exception ex) { obj.IsSucess = false; obj.Message = ex.Message + "Attempt Fail"; return(BadRequest(obj)); } }