public async Task <bool> Create(BussinessDetail _bussinessDetail) { if (db != null) { await db.BussinessDetails.AddAsync(_bussinessDetail); await db.SaveChangesAsync(); return(true); } return(false); }
public async Task <IActionResult> Register(ApplicationUserModel model) { var applicationUser = new ApplicationUser() { UserName = model.Email, Email = model.Email, Name = model.Name, DeviceToken = model.DeviceToken, DeviceType = model.DeviceType, PhoneNumber = model.Phone, Language = string.IsNullOrEmpty(model.Language)? Constants.baseLanguage : model.Language, ParentUserId = model.ParentUserId, ConfirmationCode = CommonMethods.GenerateOTP().ToString(), UserStatus = true, IsActive = true, CreatedBy = string.IsNullOrEmpty(model.ParentUserId)? "": model.ParentUserId, CreatedDate = DateTime.Now }; if (model.Role == Constants.isSuperAdmin || model.Role == Constants.isAdmin || model.Role == Constants.isSubAdmin) { try { var result = await _userManager.CreateAsync(applicationUser, model.Password); await _userManager.AddToRoleAsync(applicationUser, model.Role); if (result.Succeeded) { //send email here var msg = $"Hi {applicationUser.Name}, <br/><br/> Your confirmation code to access your account is {applicationUser.ConfirmationCode}. <br/><br/>Thanks"; await _emailSender.SendEmailAsync(email : applicationUser.Email, subject : "Confirm Email", htmlMessage : msg); if (model.Role == Constants.isAdmin && result.Succeeded) { var bussiness = new BussinessDetail() { IdentityId = applicationUser.Id, UniqueBussinessId = Guid.NewGuid().ToString(), BussinessEmail = applicationUser.Email, BussinessPhone = applicationUser.PhoneNumber, CurrencyId = Constants.baseCurrencyId, CreatedBy = applicationUser.Id, CreatedDate = DateTime.Now }; bool status = await _bussinessService.Create(bussiness); return(Ok(new { status = StatusCodes.Status200OK, success = true, message = ResponseMessages.msgUserRegisterSuccess })); } else if (model.Role == Constants.isSuperAdmin && result.Succeeded) { return(Ok(new { status = StatusCodes.Status200OK, success = true, message = ResponseMessages.msgUserRegisterSuccess })); } else if (model.Role == Constants.isSubAdmin && result.Succeeded) { //5 sub admin check later return(Ok(new { status = StatusCodes.Status200OK, success = true, message = ResponseMessages.msgUserRegisterSuccess })); } else { return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgSomethingWentWrong })); } } else { return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = result.Errors.First().Code })); } } catch (Exception ex) { return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = ex.Message.ToString() })); } } else { return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgUserRoleNotAuthorized })); } }