Exemple #1
0
        public async Task <bool> Create(BussinessDetail _bussinessDetail)
        {
            if (db != null)
            {
                await db.BussinessDetails.AddAsync(_bussinessDetail);

                await db.SaveChangesAsync();

                return(true);
            }
            return(false);
        }
Exemple #2
0
        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 }));
            }
        }