public ApplicationUserResponse CreateUser(Doozestan.Domain.ServiceRequest.User.ApplicationUserRequest user)
        {
            var response = new ApplicationUserResponse();

            try
            {
                if (user == null)
                {
                    response.ResponseMessage = "ApplicationUserRequest is null";
                    response.ResponseStatus  = ResponseStatus.BadRequest;
                    return(response);
                }
                if (user.ApplicationUser == null)
                {
                    response.ResponseMessage = "ApplicationUserDTO is null";
                    response.ResponseStatus  = ResponseStatus.BadRequest;
                    return(response);
                }
                //if (user.ApplicationUser.RoleId <= 0)//TODO Role Identity Is not impeliment right Now
                //{
                //    response.ResponseMessage = "RoleId is null";
                //    response.ResponseStatus = ResponseStatus.BadRequest;
                //    return response;
                //}
                var userApp = MapperHelper.ApplicationUserMapper(user.ApplicationUser);
                var res     = UserManager.Create(userApp, user.ApplicationUser.Password);
                if (res.Errors.Count() > 0)
                {
                    response.ErrorList      = res.Errors.ToList();
                    response.ResponseStatus = ResponseStatus.ExpectationFailed;
                }
                else
                {
                    //if (user.ApplicationUser.RoleId > 0)
                    {
                        var role = (Role)user.ApplicationUser.RoleId;
                        var r    = RoleManager.FindByName(role.ToString());
                        if (r == null)
                        {
                            response.ResponseStatus = ResponseStatus.ExpectationFailed;
                            UserManager.Delete(userApp);
                        }
                        else
                        {
                            UserManager.AddToRole(userApp.Id, r.Name);
                            response.UserId         = userApp.Id;
                            response.ResponseStatus = ResponseStatus.Ok;
                        }
                    }
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.ResponseMessage = ex.Message;
                response.ResponseStatus  = ResponseStatus.ExpectationFailed;
                return(response);
            }
        }
        public ApplicationUserResponse CreateUser(ApplicationUserRequest user)
        {
            var response = new ApplicationUserResponse();

            try
            {
                if (!UserCreationValidation(user, response))
                {
                    return(response);
                }
                var userApp = MapperHelper.ApplicationUserMapper(user.ApplicationUser);
                var res     = UserManager.Create(userApp, user.ApplicationUser.Password);
                if (res.Errors.Count() > 0)
                {
                    response.ResponseStatus  = ResponseStatus.BadRequest;
                    response.ResponseMessage = MessageDescription.MessageDescription.CreateUserFailed.GetDescription();
                }
                else
                {
                    if (user.ApplicationUser.RoleId > 0)
                    {
                        //TODO:
                        var role = user.ApplicationUser.RoleId;
                        var r    = RoleManager.FindById(role.ToString());
                        if (r == null)
                        {
                            response.ResponseStatus  = ResponseStatus.BadRequest;
                            response.ResponseMessage = MessageDescription.MessageDescription.RoleNotFound.GetDescription();
                            UserManager.Delete(userApp);
                        }
                        else
                        {
                            UserManager.AddToRole(userApp.Id, r.Name);
                            response.UserId          = userApp.Id;
                            response.ResponseStatus  = ResponseStatus.Ok;
                            response.ResponseMessage = MessageDescription.MessageDescription.UserStatusIsOk.GetDescription();
                        }
                    }
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.ResponseStatus  = ResponseStatus.ExpectationFailed;
                response.ResponseMessage = MessageDescription.MessageDescription.TransactionFailed.GetDescription();
                Logger.ErrorException(ex.Message, ex);
                return(response);
            }
        }