public async Task <JsonResult> GetUserById()//(string Id) { try { //to get userid from access token string Id = User.Claims.First(c => c.Type == "UserID").Value; UserDetailsViewModel _userDetails = new UserDetailsViewModel(); var user = await _userManager.FindByIdAsync(Id); var userstatus = user.UserStatus; if (user != null) { var roles = await _userManager.GetRolesAsync(user); var bussiness = new BussinessDetailViewModel(); if (roles[0] == Constants.isAdmin) { //get bussiness details of admin by id bussiness = await _bussinessService.GetBussinessDetailsById(user.Id); } else { //get bussiness details of parent admin if role is subadmin bussiness = await _bussinessService.GetBussinessDetailsById(user.ParentUserId); } _userDetails.Id = user.Id; _userDetails.Name = user.Name; _userDetails.Email = user.Email; _userDetails.PhoneNumber = user.PhoneNumber; _userDetails.ProfilePic = user.ProfilePic; _userDetails.Language = user.Language; _userDetails.UserType = roles.FirstOrDefault(); _userDetails.DeviceToken = user.DeviceToken; _userDetails.DeviceType = user.DeviceType; _userDetails.AccessToken = user.AccessToken; _userDetails.ParentUserId = user.ParentUserId; _userDetails.UserStatus = user.UserStatus; _userDetails.IsActive = user.IsActive; _userDetails.Dob = user.Dob; _userDetails.Gender = user.Gender; _userDetails.CreatedDate = user.CreatedDate; _userDetails.BussinessDetails = bussiness; return(new JsonResult(new { status = StatusCodes.Status200OK, success = true, message = "user profile" + ResponseMessages.msgShownSuccess, userstatus, user_info = _userDetails })); } return(new JsonResult(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false })); } catch (Exception ex) { return(new JsonResult(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false })); } }
public async Task <IActionResult> UpdateAddress(UserAddressViewModel _model) { try { if (ModelState.IsValid) { //get userid from access token string userId = User.Claims.First(c => c.Type == "UserID").Value; var user = await _userManager.FindByIdAsync(userId); var userstatus = user.UserStatus; if (user != null && userstatus) { BussinessDetailViewModel _bussinessmodel = new BussinessDetailViewModel(); _bussinessmodel.IdentityId = userId; _bussinessmodel.Address1 = _model.Address1; _bussinessmodel.Address2 = _model.Address2; _bussinessmodel.CountryId = _model.CountryId; _bussinessmodel.StateId = _model.StateId; _bussinessmodel.City = _model.City; _bussinessmodel.Postalcode = _model.Postalcode; bool result = await _bussinessService.UpdateBussinessProfile(_bussinessmodel); if (result) { return(Ok(new { status = StatusCodes.Status200OK, success = true, message = "address" + ResponseMessages.msgUpdationSuccess, userstatus })); } else { return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgDbConnectionError, userstatus = false })); } } else { return(Ok(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false })); } } else { return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgParametersNotCorrect, userstatus = false })); } } catch (Exception ex) { return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false })); } }
public async Task <JsonResult> ShowUserAddress() { try { //to get userid from access token string Id = User.Claims.First(c => c.Type == "UserID").Value; UserAddressViewModel _userDetails = new UserAddressViewModel(); var user = await _userManager.FindByIdAsync(Id); var userstatus = user.UserStatus; if (user != null) { var bussiness = new BussinessDetailViewModel(); if (User.IsInRole(Constants.isSubAdmin)) { //get bussiness details of parent admin if role is subadmin bussiness = await _bussinessService.GetBussinessDetailsById(user.ParentUserId); } else { //get bussiness details of admin by id bussiness = await _bussinessService.GetBussinessDetailsById(user.Id); } _userDetails.Address1 = (!string.IsNullOrEmpty(bussiness.Address1))? bussiness.Address1 :""; _userDetails.Address2 = (!string.IsNullOrEmpty(bussiness.Address2)) ? bussiness.Address2 : ""; _userDetails.CountryId = bussiness.CountryId; _userDetails.CountryName = (!string.IsNullOrEmpty(bussiness.CountryName)) ? bussiness.CountryName : ""; _userDetails.StateId = bussiness.StateId; _userDetails.StateName = (!string.IsNullOrEmpty(bussiness.StateName)) ? bussiness.StateName : ""; _userDetails.City = (!string.IsNullOrEmpty(bussiness.City)) ? bussiness.City : ""; _userDetails.Postalcode = (!string.IsNullOrEmpty(bussiness.Postalcode)) ? bussiness.Postalcode : ""; return(new JsonResult(new { status = StatusCodes.Status200OK, success = true, message = "user address" + ResponseMessages.msgShownSuccess, userstatus, user_info = _userDetails })); } return(new JsonResult(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgNotFound + "user address.", userstatus = false })); } catch (Exception ex) { return(new JsonResult(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false })); } }
public async Task <JsonResult> ShowUserProfile() { try { //to get userid from access token string Id = User.Claims.First(c => c.Type == "UserID").Value; UserProfileViewModel _userDetails = new UserProfileViewModel(); var user = await _userManager.FindByIdAsync(Id); var userstatus = user.UserStatus; if (user != null) { var bussiness = new BussinessDetailViewModel(); if (User.IsInRole(Constants.isSubAdmin)) { //get bussiness details of parent admin if role is subadmin bussiness = await _bussinessService.GetBussinessDetailsById(user.ParentUserId); } else { //get bussiness details of admin by id bussiness = await _bussinessService.GetBussinessDetailsById(user.Id); } _userDetails.Name = user.Name; _userDetails.Email = user.Email; _userDetails.Phone_no = user.PhoneNumber; _userDetails.Profile_pic = (!string.IsNullOrEmpty(user.ProfilePic))? user.ProfilePic :""; _userDetails.userstatus = user.UserStatus; _userDetails.Company_name = (!string.IsNullOrEmpty(bussiness.BussinessName)) ? bussiness.BussinessName : ""; _userDetails.Web_address = (!string.IsNullOrEmpty(bussiness.WebAddress)) ? bussiness.WebAddress : ""; _userDetails.Fax = (!string.IsNullOrEmpty(bussiness.Fax)) ? bussiness.Fax : ""; return(new JsonResult(new { status = StatusCodes.Status200OK, success = true, message = "user profile" + ResponseMessages.msgShownSuccess, userstatus, user_info = _userDetails })); } return(new JsonResult(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false })); } catch (Exception ex) { return(new JsonResult(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false })); } }
public async Task <IActionResult> UpdateBussinessProfile(BussinessDetailViewModel _bussinessmodel) { try { if (ModelState.IsValid) { //get userid from access token string userId = User.Claims.First(c => c.Type == "UserID").Value; var user = await _userManager.FindByIdAsync(userId); var userstatus = user.UserStatus; if (user != null && userstatus) { _bussinessmodel.IdentityId = userId; bool result = await _bussinessService.UpdateBussinessProfile(_bussinessmodel); if (result) { return(Ok(new { status = StatusCodes.Status200OK, success = true, message = "bussiness profile" + ResponseMessages.msgUpdationSuccess, userstatus })); } else { return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgDbConnectionError, userstatus = false })); } } else { return(Ok(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgBlockOrInactiveUserNotPermitted, userstatus = false })); } } else { return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgParametersNotCorrect, userstatus = false })); } } catch (Exception ex) { return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false })); } }
public async Task <IActionResult> UpdateProfile(UserProfileViewModel userUpdateModel) { try { if (ModelState.IsValid) { //get userid from access token string userId = User.Claims.First(c => c.Type == "UserID").Value; var user = await _userManager.FindByIdAsync(userId); var userstatus = user.UserStatus; if (user != null && userstatus) { if (!string.IsNullOrWhiteSpace(userUpdateModel.Name)) { user.Name = userUpdateModel.Name; } if (!string.IsNullOrWhiteSpace(userUpdateModel.Phone_no)) { user.PhoneNumber = userUpdateModel.Phone_no; } user.UpdatedBy = userId; user.UpdatedDate = DateTime.Now; IdentityResult res = await _userManager.UpdateAsync(user); if (res.Succeeded) { BussinessDetailViewModel _bussinessmodel = new BussinessDetailViewModel(); _bussinessmodel.IdentityId = userId; _bussinessmodel.BussinessName = userUpdateModel.Company_name; _bussinessmodel.BussinessPhone = userUpdateModel.Phone_no; _bussinessmodel.Fax = userUpdateModel.Fax; _bussinessmodel.WebAddress = userUpdateModel.Web_address; bool result = await _bussinessService.UpdateBussinessProfile(_bussinessmodel); if (result) { return(Ok(new { status = StatusCodes.Status200OK, success = true, message = "profile" + ResponseMessages.msgUpdationSuccess, userstatus })); } else { return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgDbConnectionError, userstatus = false })); } } else { return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = res.Errors.First().Code, userstatus = false })); } } else { return(Ok(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false })); } } else { return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgParametersNotCorrect, userstatus = false })); } } catch (Exception ex) { return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false })); } }
public async Task <IActionResult> Login(LoginModel model) { try { if (!ModelState.IsValid) { return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgParametersNotCorrect, userstatus = false })); } var user = await _userManager.FindByEmailAsync(model.Email); if (user == null) { return(Ok(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false })); } var userstatus = user.UserStatus; if (!userstatus) { return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgUserBlockedOrDeleted, userstatus = false })); } if (user != null && userstatus && await _userManager.CheckPasswordAsync(user, model.Password)) { //check email is confirmed if (!_userManager.IsEmailConfirmedAsync(user).Result) { return(Ok(new { status = StatusCodes.Status200OK, success = false, message = ResponseMessages.msgEmailNotConfirmed, userstatus })); } // update user with device type and device token user.DeviceToken = model.DeviceToken; user.DeviceType = model.DeviceType; // change the security stamp only on correct username/password await _userManager.UpdateSecurityStampAsync(user); // Get role assigned to the user var roles = await _userManager.GetRolesAsync(user); IdentityOptions _options = new IdentityOptions(); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim("UserID", user.Id.ToString()), new Claim(_options.ClaimsIdentity.RoleClaimType, roles.FirstOrDefault()) }), Expires = DateTime.UtcNow.AddDays(1), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSettings.JWT_Secret)), SecurityAlgorithms.HmacSha256Signature) }; var bussiness = new BussinessDetailViewModel(); if (roles[0] == Constants.isAdmin) { //get bussiness details of admin by id bussiness = await _bussinessService.GetBussinessDetailsById(user.Id); } else { //get bussiness details of parent admin if role is subadmin bussiness = await _bussinessService.GetBussinessDetailsById(user.ParentUserId); } var tokenHandler = new JwtSecurityTokenHandler(); var securityToken = tokenHandler.CreateToken(tokenDescriptor); var accessToken = tokenHandler.WriteToken(securityToken); List <Permissions> permissionList = new List <Permissions>(); UserInfo _userinfo = new UserInfo(); _userinfo.Id = user.Id; _userinfo.Name = user.Name; _userinfo.ProfilePic = (user.ProfilePic != null && user.ProfilePic != "") ? GetImageUrl(Constants.userImagesContainer, user.ProfilePic) :""; _userinfo.Email = user.Email; _userinfo.Status = user.IsActive; _userinfo.CurrencyId = (bussiness != null) ? bussiness.CurrencyId : 0; _userinfo.CurrencySymbol = (bussiness != null && bussiness.CurrencySymbol != null && bussiness.CurrencySymbol != "")? bussiness.CurrencySymbol: ""; _userinfo.Currency = (bussiness != null && bussiness.CurrencyCode != null && bussiness.CurrencyCode != "") ? bussiness.CurrencyCode : ""; _userinfo.UserType = roles.FirstOrDefault(); _userinfo.Permissions_List = permissionList;//send later _userinfo.AccessToken = accessToken; var user_info = new Object(); { user_info = _userinfo; }; return(Ok(new { status = StatusCodes.Status200OK, success = true, message = ResponseMessages.msgUserLoginSuccess, userstatus, user_info })); } else { return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgInvalidCredentials, userstatus = false })); } } catch (Exception ex) { return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false })); } }
public async Task <bool> UpdateBussinessProfile(BussinessDetailViewModel _model) { if (db != null) { var bussiness = await db.BussinessDetails.FirstOrDefaultAsync(x => x.IdentityId == _model.IdentityId); if (bussiness != null) { //update the bussiness if (!string.IsNullOrWhiteSpace(_model.BussinessName)) { bussiness.BussinessName = _model.BussinessName; } if (!string.IsNullOrWhiteSpace(_model.BussinessLogo)) { bussiness.BussinessLogo = _model.BussinessLogo; } if (!string.IsNullOrWhiteSpace(_model.BussinessCoverPhoto)) { bussiness.BussinessCoverPhoto = _model.BussinessCoverPhoto; } if (!string.IsNullOrWhiteSpace(_model.AccountNumber)) { bussiness.AccountNumber = _model.AccountNumber; } if (_model.CurrencyId != 0) { bussiness.CurrencyId = _model.CurrencyId; } if (!string.IsNullOrWhiteSpace(_model.CIN)) { bussiness.CIN = _model.CIN; } if (!string.IsNullOrWhiteSpace(_model.GSTIN)) { bussiness.GSTIN = _model.GSTIN; } if (!string.IsNullOrWhiteSpace(_model.BussinessSize)) { bussiness.BussinessSize = _model.BussinessSize; } if (!string.IsNullOrWhiteSpace(_model.BussinessClass)) { bussiness.BussinessClass = _model.BussinessClass; } if (!string.IsNullOrWhiteSpace(_model.Founded)) { bussiness.Founded = Convert.ToDateTime(_model.Founded); } if (!string.IsNullOrWhiteSpace(_model.Fax)) { bussiness.Fax = _model.Fax; } if (!string.IsNullOrWhiteSpace(_model.WebAddress)) { bussiness.WebAddress = _model.WebAddress; } if (!string.IsNullOrWhiteSpace(_model.BussinessEmail)) { bussiness.BussinessEmail = _model.BussinessEmail; } if (!string.IsNullOrWhiteSpace(_model.BussinessPhone)) { bussiness.BussinessPhone = _model.BussinessPhone; } if (!string.IsNullOrWhiteSpace(_model.Address1)) { bussiness.Address1 = _model.Address1; } if (!string.IsNullOrWhiteSpace(_model.Address2)) { bussiness.Address2 = _model.Address2; } if (_model.CountryId != 0) { bussiness.CountryId = _model.CountryId; } if (_model.StateId != 0) { bussiness.StateId = _model.StateId; } if (!string.IsNullOrWhiteSpace(_model.City)) { bussiness.City = _model.City; } if (!string.IsNullOrWhiteSpace(_model.Postalcode)) { bussiness.Postalcode = _model.Postalcode; } if (!string.IsNullOrWhiteSpace(_model.Signature)) { bussiness.Signature = _model.Signature; } bussiness.UpdatedBy = _model.IdentityId; bussiness.UpdatedDate = DateTime.Now; db.BussinessDetails.Update(bussiness); //Commit the transaction await db.SaveChangesAsync(); return(true); } return(false); } return(false); }
public async Task SendInvoiceMail(long InvoiceId) { try { InvoiceListViewModel invoiceDetails = new InvoiceListViewModel(); invoiceDetails = await GetInvoiceByInvoiceId(InvoiceId); BussinessDetailViewModel adminbussinessDetials = new BussinessDetailViewModel(); if (invoiceDetails != null) { adminbussinessDetials = await _bussinessService.GetBussinessDetailsById(invoiceDetails.UserId); } var pathToFile = _hostingEnvironment.WebRootPath + Path.DirectorySeparatorChar.ToString() + Constants.mainTemplatesContainer + Path.DirectorySeparatorChar.ToString() + Constants.invoicesTemplatesContainer + Path.DirectorySeparatorChar.ToString() + Constants.invoice_template_Sample_Invoice_Template; var subject = string.Empty; if (invoiceDetails.Type == Constants.typeInvoice) { subject = Constants.subject_SendInvoice_to_customer + " Invoice No: # " + invoiceDetails.InvoiceNumber; } else { subject = Constants.subject_SendQuotation_to_customer + " Quotation No: # " + invoiceDetails.InvoiceNumber; } string customerName = invoiceDetails.FirstName + " " + invoiceDetails.LastName; StringBuilder sb = new StringBuilder(); foreach (var item in invoiceDetails.ItemList) { sb.Append("<tr class='item'>"); sb.AppendFormat("<td>{0}</td>", item.Name); sb.AppendFormat("<td>{0}</td>", item.Quantity); sb.AppendFormat("<td>{0}</td>", item.Tax); sb.AppendFormat("<td>{0}</td>", item.Price); sb.Append("</tr>"); } string itemList = sb.ToString(); var body = new BodyBuilder(); using (StreamReader reader = System.IO.File.OpenText(pathToFile)) { body.HtmlBody = reader.ReadToEnd(); } string messageBody = body.HtmlBody; messageBody = messageBody.Replace("{companylogoUrl}", adminbussinessDetials.BussinessLogo); messageBody = messageBody.Replace("{invoiceNumber}", invoiceDetails.InvoiceNumber); messageBody = messageBody.Replace("{invoiceDate}", invoiceDetails.Date); messageBody = messageBody.Replace("{dueDate}", invoiceDetails.DueDate); messageBody = messageBody.Replace("{bussinessName}", adminbussinessDetials.BussinessName); messageBody = messageBody.Replace("{bussinessAddress}", CommonMethods.SplitLine(adminbussinessDetials.Address1)); messageBody = messageBody.Replace("{customerBussiness}", invoiceDetails.BussinessName); messageBody = messageBody.Replace("{customerEmail}", invoiceDetails.PersonalEmail); messageBody = messageBody.Replace("{itemList}", itemList); messageBody = messageBody.Replace("{subTotal}", invoiceDetails.Subtotal.ToString()); messageBody = messageBody.Replace("{tax}", invoiceDetails.Tax.ToString()); messageBody = messageBody.Replace("{total}", invoiceDetails.Total.ToString()); messageBody = messageBody.Replace("{customerName}", customerName); messageBody = messageBody.Replace("{currencySymbol}", invoiceDetails.CurrencySymbol); await _emailSender.SendEmailAsync(email : invoiceDetails.PersonalEmail, subject : subject, htmlMessage : messageBody); } catch (Exception ex) { throw ex; } }