public IActionResult GetVehicleById(int id) { try { var vehicle = _vehicleLogic.GetVehicleById(id); if (vehicle == null) { return(BadRequest()); } var requestHeaders = HttpContext.Request.Headers; if (requestHeaders.TryGetValue("Authorization", out StringValues token)) { var userRole = JwtService.GetRoleFromToken(JwtService.DecodeToken(token.ToString())); if (userRole == Roles.user.GetEnumDescription() && (vehicle.IsActive == null || !(bool)vehicle.IsActive || !vehicle.IsAvailable || !vehicle.IsProper) ) { return(BadRequest()); } } else { return(Unauthorized()); } return(Ok(vehicle)); } catch (Exception e) { return(StatusCode(500, e)); } }
public async Task <IActionResult> UpdatePersonAvatar([FromForm] UserAvatarModel model) { try { if (ModelState.IsValid) { var requestHeaders = HttpContext.Request.Headers; int userId = 0; if (requestHeaders.TryGetValue("Authorization", out StringValues token)) { userId = JwtService.GetUserIdFromToken(JwtService.DecodeToken(token.ToString())); if (userId < 1) { return(Unauthorized()); } } else { return(Unauthorized()); } byte[] avatarImage; using (var memoryStream = new MemoryStream()) { await model.AvatarImage.CopyToAsync(memoryStream); avatarImage = memoryStream.ToArray(); } string guid = Guid.NewGuid().ToString(); string mime = model.AvatarImage.ContentType.Contains("/") ? model.AvatarImage.ContentType.Split("/")[1] : model.AvatarImage.ContentType; string fileName = $"{guid}.{mime}"; string realPath; try { realPath = _personLogic.SavePersonsAvatar(fileName, avatarImage, userId); } catch (Exception e) { return(StatusCode(500, e)); } if (string.IsNullOrWhiteSpace(realPath)) { return(BadRequest()); } return(Ok(realPath)); } else { return(BadRequest(ModelState)); } } catch (Exception e) { return(BadRequest(e)); } }
public Task OnAuthorizationAsync(AuthorizationFilterContext context) { if (context.Filters.Any(f => f is IAllowAnonymousFilter)) { return(Task.FromResult(0)); } var request = context.HttpContext.Request; var response = context.HttpContext.Response; if (request.Headers.TryGetValue("Authorization", out StringValues token)) { try { JwtSecurityToken validToken = JwtService.DecodeToken(token.ToString()); if (validToken != null) { AttachUpdatedTokenToHeader(response, validToken); if (!IsAuthorized(context, validToken) || !IsUserActive(validToken) ) { setUnauthorized(); } } else { setUnauthorized(); } } catch { setUnauthorized(); } } else { setUnauthorized(); } void setUnauthorized() { SetUnauthorized(response); } return(Task.FromResult(0)); }
public IActionResult GetCurrentUser(string token) { try { var validatedToken = JwtService.DecodeToken(token); if (validatedToken == null) { return(Unauthorized("Unauthorized")); } var userId = JwtService.GetUserIdFromToken(validatedToken); if (userId == 0) { var role = JwtService.GetRoleFromToken(validatedToken); if (role == Roles.nonUser.GetEnumDescription()) { return(NoContent()); } else { return(Unauthorized("Unauthorized")); } } try { var user = BLFactoryService.GetUserLogic.GetUser(userId); if (user == null) { return(Unauthorized("Unauthorized")); } user.Password = ""; return(Ok(user)); } catch (Exception e) { return(StatusCode(500, e)); } } catch (Exception e) { return(BadRequest(e)); } }
public IActionResult AddOrder([FromBody] NewOrderModel model) { try { if (model == null) { return(BadRequest("Body content is not valid!")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!(model.StartDate.ToLocalTime() > DateTime.Now.AddDays(-1)) || !(model.EndDate > model.StartDate) ) { return(BadRequest("Inavalid dates range!")); } var requestHeaders = HttpContext.Request.Headers; int userId = 0; if (requestHeaders.TryGetValue("Authorization", out StringValues token)) { userId = JwtService.GetUserIdFromToken(JwtService.DecodeToken(token.ToString())); if (userId < 1) { return(Unauthorized()); } } else { return(Unauthorized()); } var entity = model.Map <OrderEntity>(); entity.StartDate = entity.StartDate.ToLocalTime(); entity.EndDate = entity.EndDate.ToLocalTime(); entity.UserId = userId; var vehicle = _vehicleLogic.GetVehicleById(entity.VehicleId); if (vehicle == null || vehicle.CarClass == null) { return(BadRequest()); } var userRole = JwtService.GetRoleFromToken(JwtService.DecodeToken(token.ToString())); if (userRole == Roles.user.GetEnumDescription() && (vehicle.IsActive == null || !(bool)vehicle.IsActive || !vehicle.IsAvailable || !vehicle.IsProper) ) { return(BadRequest()); } entity.Price = (decimal)((entity.EndDate - entity.StartDate).TotalDays * vehicle.CarClass.DailyPrice); entity.Price = decimal.Round(entity.Price, 2); entity = _orderLogic.AddOrder(entity); if (entity == null) { throw new Exception("Somthing went wrong while adding model to DB!"); } if (entity.User != null) { entity.User.Password = ""; } return(Ok(entity)); } catch (Exception e) { return(StatusCode(500, e)); } }