public async Task InvokeAsync(HttpContext httpContext)
        {
            try
            {
                await _next(httpContext);
            }
            catch (Exception ex)
            {
                Error error = new Error();
                error.Message    = ex.Message;
                error.StackTrace = ex.StackTrace;
                error.UserId     = httpContext.User.Identity.Name;
                error.StatusCode = httpContext.Response.StatusCode;
                await _context.AddAsync(error);

                await _context.SaveChangesAsync();
                await HandleExceptionAsync(httpContext, ex);
            }
        }
Exemple #2
0
        public async Task <ApiResponse> Handle(SignupCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                if (request.RegisterId != null || request.RegisterId != Guid.Empty)
                {
                    var ExistUser = _context.UserRegister.FirstOrDefault(x => x.UserName == request.UserName & x.IsActive == true);
                    if (ExistUser == null)
                    {
                        var userexist = _context.User.FirstOrDefault(x => x.UserName == request.UserName);
                        if (userexist == null)
                        {
                            UserRegister userRegister = new UserRegister
                            {
                                UserName    = request.UserName,
                                FirstName   = request.FirstName,
                                MiddleName  = request.MiddleName,
                                LastName    = request.LastName,
                                Email       = request.Email,
                                Password    = request.Password,
                                CreatedDate = DateTime.UtcNow,
                                PhoneNo     = request.PhoneNo,

                                IsActive = true
                            };

                            await _context.AddAsync(userRegister);

                            //await _context.SaveChangesAsync();

                            var newUser = new ApplicationUser {
                                UserName    = request.UserName,
                                FirstName   = request.FirstName,
                                LastName    = request.LastName,
                                PhoneNumber = request.PhoneNo,
                                //RegistrationNumber = request.RegistrationNumber,
                                //PhoneNumberConfirmed = true,
                                UserType = (int)UserRole.User
                            };
                            await _roleManager.CreateAsync(new IdentityRole(UserRoleName.User.ToString()));

                            var objNew = await _userManager.CreateAsync(newUser, request.Password);

                            var id = newUser.Id;
                            await _userManager.AddClaimAsync(newUser, new Claim("Roles", UserRoleName.User.ToString()));

                            await _userManager.AddToRoleAsync(newUser, UserRoleName.User.ToString());

                            User user = new User();
                            user.UserName = request.UserName;
                            user.UserById = newUser.Id;
                            user.PhoneNo  = request.PhoneNo;
                            //user.SSN = existrecord.SSN;
                            user.isLoginFirstTime = true;
                            user.Lat  = 0;
                            user.Long = 0;
                            await _context.User.AddAsync(user);

                            _context.SaveChanges();

                            //ExistUser.IsActive = true;
                            //ExistUser.UpdatedDate = DateTime.UtcNow;
                            //_context.UserRegister.Update(ExistUser);
                            await _context.SaveChangesAsync();

                            response.Status       = (int)Number.One;
                            response.Message      = ResponseMessage.Success;
                            response.ResponseData = userRegister;
                        }
                        else
                        {
                            response.Status  = (int)Number.One;
                            response.Message = ResponseMessage.UserExist;
                        }
                    }
                    else
                    {
                        response.Status  = (int)Number.One;
                        response.Message = ResponseMessage.UserExist;
                    }
                }
                else
                {
                    var existrecord = _context.UserRegister.FirstOrDefault(x => x.RegisterId == request.RegisterId);
                    if (existrecord != null)
                    {
                        existrecord.FirstName  = request.FirstName;
                        existrecord.LastName   = request.LastName;
                        existrecord.MiddleName = request.MiddleName;
                        //existrecord.EmailId = request.EmailId;
                        existrecord.Password    = RSAcrypotography.Encryption(request.Password);
                        existrecord.UpdatedDate = DateTime.UtcNow;
                        existrecord.PhoneNo     = request.PhoneNo;
                        //existrecord.OTP = number;
                        //existrecord.OTPStartDateTime = DateTime.UtcNow;
                        //existrecord.OTPEndDateTime = DateTime.UtcNow.AddMinutes(5);

                        _context.Update(existrecord);
                        await _context.SaveChangesAsync();

                        //SendOTPMessage.SendMessage(request.PhoneNo, number);

                        response.Status       = (int)Number.One;
                        response.Message      = ResponseMessage.Success;
                        response.ResponseData = existrecord;
                    }
                    else
                    {
                        response.Status  = (int)Number.Zero;
                        response.Message = ResponseMessage.PhoneExist;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;

                //response.Status = (int)Number.Zero;
                //response.Message = ResponseMessage.Error;
            }
            return(response);
        }