Exemplo n.º 1
0
        public ActionResult Register([FromBody] RegisterModel request)
        {
            UserModelOutput userModelOutput = new UserModelOutput();

            DisplayUser displayUser = new DisplayUser();

            try
            {
                var query      = new List <UserModel>((List <UserModel>)displayUser.DisplayAll()).AsQueryable();
                var CheckEmail = query.Where(p => p.user_email.StartsWith(request.user_email ?? String.Empty, StringComparison.InvariantCultureIgnoreCase));

                if (CheckEmail.Count() > 0)
                {
                    ModelState.AddModelError("Email", "Email already exists");
                }

                if (ModelState.IsValid)
                {
                    _logger.Information("Post Register");
                    RegisterServices _register = new RegisterServices();
                    var saving = _register.Add(request);

                    if (saving.Result == 1)
                    {
                        userModelOutput.IsSuccess = true;
                        userModelOutput.Code      = 200;
                        userModelOutput.Message   = "Success Register";
                    }
                }
                else
                {
                    _logger.Error("Failed Register");
                    string errordetails = "";
                    var    errors       = new List <string>();
                    foreach (var state in ModelState)
                    {
                        foreach (var error in state.Value.Errors)
                        {
                            string p = error.ErrorMessage;
                            errordetails = errordetails + error.ErrorMessage;
                        }
                    }

                    Dictionary <string, object> dict = new Dictionary <string, object>();
                    dict.Add("error", errordetails);
                    userModelOutput.IsSuccess   = false;
                    userModelOutput.Code        = 422;
                    userModelOutput.Message     = "Failed Register";
                    userModelOutput.CustomField = dict;
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Failed Register" + ex.Message.ToString());
                userModelOutput.IsSuccess = false;
                userModelOutput.Code      = 422;
                userModelOutput.Message   = ex.Message.ToString();
            }
            return(Ok(userModelOutput));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取用户token
        /// </summary>
        /// <param name="id">用户编号id</param>
        /// <param name="userId">用户uuid</param>
        /// <param name="nickName">昵称</param>
        /// <param name="mobile">手机号码</param>
        /// <param name="userStatus">用户状态</param>
        /// <returns></returns>
        public async Task <CommandResult> GetUserToken(int id, Guid userId, string nickName, string mobile, int userStatus)
        {
            var paramList = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("id", id.ToString()),
                new KeyValuePair <string, string>("nickname", nickName),
                new KeyValuePair <string, string>("uuid", userId.ToString()),
                new KeyValuePair <string, string>("mobile", mobile),
                new KeyValuePair <string, string>("usertype", "3"),
                new KeyValuePair <string, string>("isvalid", userStatus.ToString()),
                new KeyValuePair <string, string>("appId", _configuration.GetSection("IdentityServer:ClientId").Value),
                new KeyValuePair <string, string>("appSecret", _configuration.GetSection("IdentityServer:ClientSecret").Value),
            };

            try
            {
                var response = await _httpClient.PostAsync("user/userToken", new FormUrlEncodedContent(paramList));

                var content = await response.Content.ReadAsStringAsync();

                return(JsonConvert.DeserializeObject <CommandResult>(content));
            }
            catch (Exception ex)
            {
                _loggerManager.Error("获取用户token出现异常", ex);
                return(new CommandResult(ResultCode.FAIL, "获取用户token失败"));
            }
        }
Exemplo n.º 3
0
 public bool AddPost(string user, string content)
 {
     try
     {
         postRepository.InsertPost(user, content, GetTimestamp());
         return(true);
     }
     catch (Exception ex)
     {
         logger.Error(ex.ToString());
         return(false);
     }
 }
Exemplo n.º 4
0
        public async Task <bool> SaveAsync()
        {
            try
            {
                var changes = context.ChangeTracker.Entries().Count(
                    p => p.State == EntityState.Modified || p.State == EntityState.Deleted ||
                    p.State == EntityState.Added);

                return(changes == 0 || await context.SaveChangesAsync() > 0);
            }
            catch (DbUpdateException e)
            {
                var sqlExc = e.GetBaseException() as SqlException;
                if (sqlExc?.Number == 547)
                {
                    throw new HttpException(HttpStatusCode.InternalServerError, "У вибраного об'єкта є залежності, спочатку видаліть їх.");
                }
                throw new HttpException(HttpStatusCode.InternalServerError, e.Message);
            }
            catch (Exception e)
            {
                logger.Error($"{e}, {nameof(SaveAsync)}");
                return(false);
            }
        }
        public void OnException(ExceptionContext context)
        {
            logger.Error(context.Exception.Message, context.Exception);

            if (context.Exception.GetType() == typeof(DomainException))
            {
                var problemDetails = new ValidationProblemDetails()
                {
                    Instance = context.HttpContext.Request.Path,
                    Status   = StatusCodes.Status400BadRequest,
                    Detail   = "Please refer to the errors property for additional details."
                };

                problemDetails.Errors.Add("DomainValidations", new string[] { context.Exception.Message.ToString() });

                context.Result = new BadRequestObjectResult(problemDetails);
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
            }
            else
            {
                context.Result = new InternalServerErrorObjectResult(new CommandResult(ResultCode.INTERNAL_SERVER_ERROR, "服务器内部出现错误,请稍后重试~"));
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
            }
            context.ExceptionHandled = true;
        }
Exemplo n.º 6
0
        public IActionResult Index(PagingParams pagingParams, string province, string kabupaten, string kelurahan)
        {
            try
            {
                #region "IF PARAM"
                if (province == null)
                {
                    province = "";
                }
                else
                {
                    province = province.ToUpper();
                }


                if (kabupaten == null)
                {
                    kabupaten = "";
                }
                else
                {
                    kabupaten = kabupaten.ToUpper();
                }

                if (kelurahan == null)
                {
                    kelurahan = "";
                }
                else
                {
                    kelurahan = kelurahan.ToUpper();
                }

                #endregion

                PostalServices PostalServices = new PostalServices();
                objResponse = PostalServices.GetFilterThreeParam(pagingParams, province, kabupaten, kelurahan);
                Response.Headers.Add("X-Pagination", objResponse.GetHeader().ToJson());
                var response = new PostalModelOutput
                {
                    IsSuccess  = true,
                    Code       = 200,
                    Message    = "Success",
                    Data       = objResponse.List.Select(m => ToPostalInfo(m)).ToList(),
                    Pagination = GetLinks(objResponse, "GetOpenPostal")
                };
                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message.ToString());
                var response = new PostalModelOutput
                {
                    IsSuccess = false,
                    Code      = 422,
                    Message   = ex.Message.ToString(),
                };
                return(Ok(response));
            }
        }
        public async Task <IActionResult> Get([FromQuery] CostsFilterOptions queryParams)
        {
            try
            {
                Token token = (Token)this.HttpContext.Items["Token"];
                logger.Info("New request from userId: " + token.data.user.id + " arrived to obtain Costs for his Organization");
                if (!queryParams.HasOptions())
                {
                    logger.Error("Missing required query paramteters on url");
                    throw new ArgumentException("Missing required query parameters");
                }

                logger.Debug("Querying service for a report from: " +
                             queryParams.From.ToShortDateString() + " To: " + queryParams.To.ToShortDateString() +
                             " for organizationId: " + token.data.organizationId);
                List <MonthCost> result = this.costService.GetCosts(
                    queryParams.From,
                    queryParams.To,
                    token.data.organizationId
                    );
                return(Ok(result));
            }
            catch (ArgumentException exception)
            {
                return(BadRequest(exception.Message));
            }
            catch (Exception e) {
                return(BadRequest(e.Message));
            }
        }
 public IActionResult Index(PagingParams pagingParams)
 {
     try
     {
         PostalServices PostalServices = new PostalServices();
         objResponse = PostalServices.GetAllKabupaten(pagingParams);
         Response.Headers.Add("X-Pagination", objResponse.GetHeader().ToJson());
         var response = new PostalModelOutput
         {
             IsSuccess  = true,
             Code       = 200,
             Message    = "Success",
             Data       = objResponse.List.Select(m => ToPostalInfo(m)).ToList(),
             Pagination = GetLinks(objResponse, "GetOpenKabupaten")
         };
         return(Ok(response));
     }
     catch (Exception ex)
     {
         _logger.Error(ex.Message.ToString());
         var response = new PostalModelOutput
         {
             IsSuccess = false,
             Code      = 422,
             Message   = ex.Message.ToString(),
         };
         return(Ok(response));
     }
 }
        /// <summary>
        /// Hanlding Exception info
        /// </summary>
        /// <param name="context">error context</param>
        /// <param name="exception">object exception</param>
        /// <returns></returns>
        private Task HandleExceptionAsync(HttpContext context, Exception exception)
        {
            if (exception is HttpException httpException)
            {
                context.Response.StatusCode  = (int)httpException.StatusCode;
                context.Response.ContentType = httpException.ContentType;
            }
            else
            {
                context.Response.StatusCode  = (int)HttpStatusCode.InternalServerError;
                context.Response.ContentType = @"application/json";
                logger.Error($"0, {exception}, An unhandled exception has occurred: {exception.Message}");
            }

            var errorBody = JsonConvert.SerializeObject(new ErrorDetails(exception.Message));

            logger.Error(errorBody);

            return(context.Response.WriteAsync(errorBody));
        }
Exemplo n.º 10
0
 public async Task InvokeAsync(HttpContext httpContext)
 {
     try
     {
         await _next(httpContext);
     }
     catch (Exception ex)
     {
         _logger.Error($"Something went wrong: {ex.Message}");
         await HandleExceptionAsync(httpContext, ex);
     }
 }
Exemplo n.º 11
0
        public IActionResult Index()
        {
            try
            {
                _logger.Information("Get Roles");
                UserSessionManager usrSession = new UserSessionManager();
                var    user   = User as ClaimsPrincipal;
                string userId = user.Claims.Where(c => c.Type == "USERID").Select(c => c.Value).SingleOrDefault();


                DisplayRoles displayRoles = new DisplayRoles
                {
                    objUser = usrSession.UserLog(userId)._userInfo
                };
                var query = new List <RoleModel>((List <RoleModel>)displayRoles.Display()).ToList();


                var response = new RoleModelOutput
                {
                    IsSuccess = true,
                    Code      = 200,
                    Message   = "Success",
                    Data      = query
                };


                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message.ToString());
                var response = new RoleModelOutput
                {
                    IsSuccess = false,
                    Code      = 422,
                    Message   = ex.Message.ToString(),
                };
                return(Ok(response));
            }
        }
Exemplo n.º 12
0
        public IActionResult Index(PagingParams pagingParams)
        {
            try
            {
                _logger.Information("Get User");
                UserSessionManager usrSession = new UserSessionManager();
                var    user   = User as ClaimsPrincipal;
                string userId = user.Claims.Where(c => c.Type == "USERID").Select(c => c.Value).SingleOrDefault();

                UserServices userServices = new UserServices
                {
                    objUser = usrSession.UserLog(userId)._userInfo
                };

                objResponse = userServices.GetAll(pagingParams);
                Response.Headers.Add("X-Pagination", objResponse.GetHeader().ToJson());
                var response = new UserModelOutput
                {
                    IsSuccess  = true,
                    Code       = 200,
                    Message    = "Success Get Account",
                    Data       = objResponse.List.Select(m => ToUserInfo(m)).ToList(),
                    Pagination = GetLinks(objResponse, "GetAccount")
                };
                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message.ToString());
                var response = new UserModelOutput
                {
                    IsSuccess = false,
                    Code      = 422,
                    Message   = ex.Message.ToString(),
                };
                return(Ok(response));
            }
        }
Exemplo n.º 13
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(RoleManager <IdentityRole> roleManager, IApplicationBuilder app, IWebHostEnvironment env, SsnDbContext context, ILoggerManager logger)
        {
            try
            {
                context.Database.Migrate();
            }
            catch
            {
                logger.Error("CANNOT CREATE DATABASE");
                return;
            }

            var role = roleManager.FindByNameAsync(Roles.USER).GetAwaiter().GetResult();

            if (role == null)
            {
                role = new IdentityRole(Roles.USER);
                roleManager.CreateAsync(role).GetAwaiter().GetResult();
            }

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseDatabaseErrorPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthentication();
            app.UseAuthorization();

            app.UseRequestLocalization(app.ApplicationServices.GetRequiredService <IOptions <RequestLocalizationOptions> >().Value);

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();

                endpoints.MapRazorPages();
            });
        }
Exemplo n.º 14
0
        public Task OnExceptionAsync(ExceptionContext context)
        {
            var exceptionType = context.Exception.GetType();
            var result        = new ContentResult();

            result.Content    = context.Exception.Message;
            result.StatusCode =
                exceptionType == typeof(ArgumentException) ||
                exceptionType == typeof(ConstraintException)
                    ? StatusCodes.Status409Conflict
                    : StatusCodes.Status400BadRequest;

            context.Result           = result;
            context.ExceptionHandled = true;
            logger.Error($"UpdateException. StatusCode: {result.StatusCode}, Message: {result.Content} ");

            return(Task.CompletedTask);
        }
Exemplo n.º 15
0
        public IActionResult Login([FromBody] UserModel login)
        {
            _logger.Information("Information is logged");
            _logger.Warning("Warning is logged");
            _logger.Debug("Debug log is logged");
            _logger.Error("Error is logged");

            IActionResult response = Unauthorized();
            var           user     = AuthenticateUser(login);

            if (user != null)
            {
                var tokenString = GenerateJSONWebToken(user);
                response = Ok(new { token = tokenString });
            }

            return(response);
        }
Exemplo n.º 16
0
        public async Task <ICommandResult> Handler(AuthenticateUserCommand command)
        {
            try
            {
                _logger?.Info("Autenticando usuário.");
                string token = await _service.AuthenticateAsync(command.Email, command.Password);

                if (token == null)
                {
                    _logger?.Warn("Usuário não autenticado.");
                    return(new CommandResult(false, Messages.USER_AUTHENTICATE_FAILED, null));
                }
                _logger?.Info("Usuário autenticado com sucesso.");
                return(new CommandResult(true, Messages.USER_AUTHENTICATE_SUCCESS, token));
            }
            catch (Exception ex)
            {
                _logger?.Error(ex.Message.ToLower());
                // return new CommandResult(false, "Internal Server Error", null);
                throw ex;
            }
        }
        public static void ConfigureExceptionHandler(this IApplicationBuilder app, ILoggerManager logger)
        {
            app.UseExceptionHandler(appError =>
            {
                appError.Run(async context =>
                {
                    context.Response.StatusCode  = (int)HttpStatusCode.InternalServerError;
                    context.Response.ContentType = "application/json";

                    var contextFeature = context.Features.Get <IExceptionHandlerFeature>();
                    if (contextFeature != null)
                    {
                        logger.Error($"Error in Process: {contextFeature.Error}");

                        await context.Response.WriteAsync(new ErrorDetails()
                        {
                            StatusCode = context.Response.StatusCode,
                            Message    = "Internal Server Error. Error generated by NLog!"
                        }.ToString());
                    }
                });
            });
        }
        public IActionResult IndexSubCategory(PagingParams pagingParams, string id = null, string parent = null)
        {
            try
            {
                _logger.Information("GetSubCategory");
                UserSessionManager usrSession = new UserSessionManager();
                var    user   = User as ClaimsPrincipal;
                string userId = user.Claims.Where(c => c.Type == "USERID").Select(c => c.Value).SingleOrDefault();



                if (id == null)
                {
                    CategoryServices categoryServices = new CategoryServices
                    {
                        objUser = usrSession.UserLog(userId)._userInfo
                    };

                    objResponse = categoryServices.GetAllSubCategories(pagingParams, parent);
                    Response.Headers.Add("X-Pagination", objResponse.GetHeader().ToJson());

                    var response = new CategoryModelOutput
                    {
                        IsSuccess  = true,
                        Code       = 200,
                        Message    = "Success Get Category",
                        Data       = objResponse.List.Select(m => CategoryInfo(m)).ToList(),
                        Pagination = GetLinks(objResponse, "GetSubCategory")
                    };
                    return(Ok(response));
                }
                else
                {
                    DisplayCategory displayCategory = new DisplayCategory
                    {
                        objUser = usrSession.UserLog(userId)._userInfo
                    };
                    var collection = new List <CategoryModel>((IEnumerable <CategoryModel>)displayCategory.DisplayDetailSubCategory(id));

                    var response = new CategoryModelOutput
                    {
                        IsSuccess = true,
                        Code      = 200,
                        Message   = "Success Get Category",
                        Data      = collection,
                    };
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message.ToString());
                var response = new CategoryModelOutput
                {
                    IsSuccess = false,
                    Code      = 422,
                    Message   = ex.Message.ToString(),
                };
                return(Ok(response));
            }
        }