public IHttpActionResult GetAllLotsByOwner([FromBody, Required] ParkingMasterFrontendDTO request)
 {
     using (var dbcontext = new UserContext())
     {
         LotManagementManager lotManagementManager = new LotManagementManager(dbcontext);
         //ResponseDTO<List<Lot>> response = lotManagementManager.GetAllLots(request.Token);
         try
         {
             ResponseDTO <List <Lot> > response = lotManagementManager.GetAllLotsByOwner(request);
             if (response.Data != null)
             {
                 return(Ok(response.Data));
             }
             else
             {
                 ResponseDTO <HttpStatusCode> statusResponse = ResponseManager.ConvertErrorToStatus(response.Error);
                 return(Content(statusResponse.Data, statusResponse.Error));
             }
         }
         catch (Exception e)
         {
             return(Content((HttpStatusCode)400, e.Message));
         }
     }
 }
Ejemplo n.º 2
0
 public ResponseDTO <List <Lot> > GetAllLotsByOwner(ParkingMasterFrontendDTO request)
 {
     try
     {
         var token = request.Token;
         ResponseDTO <Session> SessionDTO = _sessionServices.GetSession(new Guid(token));
         if (SessionDTO.Data != null)
         {
             var ownerid = SessionDTO.Data.UserAccount.Id;
             ResponseDTO <List <Lot> > response = _lotManagementService.GetAllLotsByOwner(ownerid);
             return(response);
         }
         else
         {
             return(new ResponseDTO <List <Lot> >()
             {
                 Data = null,
                 Error = SessionDTO.Error
             });
         }
     }
     catch (Exception e)
     {
         return(new ResponseDTO <List <Lot> >()
         {
             Data = null,
             Error = "[LOT MANAGEMENT MANAGER] Could not fetch lots. " + e.ToString()
         });
     }
 }
Ejemplo n.º 3
0
        public ResponseDTO <List <Vehicle> > GetAllUserVehicles(ParkingMasterFrontendDTO request)
        {
            // Check if sessionId is in Guid Format
            Guid sessionId;

            try
            {
                sessionId = Guid.Parse(request.Token);
            }
            catch (Exception)
            {
                return(new ResponseDTO <List <Vehicle> >()
                {
                    Data = null,
                    Error = "Token not a valid Guid"
                });
            }

            ResponseDTO <Session> sessionDTO = _sessionServices.GetSession(sessionId);

            // If session data is null, then an error occured
            if (sessionDTO.Data == null)
            {
                return(new ResponseDTO <List <Vehicle> >()
                {
                    Data = null,
                    Error = sessionDTO.Error
                });
            }

            return(_vehicleServices.GetAllUserVehicles(sessionDTO.Data.UserAccount.Id));
        }
        public ResponseDTO <List <UserSpotDTO> > GetAllUserReservations(ParkingMasterFrontendDTO request)
        {
            // Check if all Guids are formatted properly
            Guid sessionId;

            try
            {
                sessionId = Guid.Parse(request.Token);
            }
            catch (Exception)
            {
                return(new ResponseDTO <List <UserSpotDTO> >()
                {
                    Data = null,
                    Error = ErrorStrings.REQUEST_FORMAT
                });
            }

            ResponseDTO <Session> sessionDTO = _sessionServices.GetSession(sessionId);

            // If session data is null, then an error occured
            if (sessionDTO.Data == null)
            {
                return(new ResponseDTO <List <UserSpotDTO> >()
                {
                    Data = null,
                    Error = sessionDTO.Error
                });
            }

            return(_reservationServices.GetAllUserResverations(sessionDTO.Data.UserAccount.Id));
        }
Ejemplo n.º 5
0
        [Route("api/reservation/getall")] // api/user/lot
        public IHttpActionResult GetAllUserReservations([FromBody, Required] ParkingMasterFrontendDTO request)
        {
            ReservationManager _reservationManager     = new ReservationManager();
            ResponseDTO <List <UserSpotDTO> > response = _reservationManager.GetAllUserReservations(request);

            if (response.Data != null)
            {
                return(Ok(response.Data));
            }
            else
            {
                ResponseDTO <HttpStatusCode> statusResponse = ResponseManager.ConvertErrorToStatus(response.Error);
                return(Content(statusResponse.Data, statusResponse.Error));
            }
        }
Ejemplo n.º 6
0
        public IHttpActionResult GetAllLogs([FromBody, Required] ParkingMasterFrontendDTO request)
        {
            LogManager lm = new LogManager();
            ResponseDTO <List <Log> > list = lm.GetAllLogs(request);

            if (list.Data != null)
            {
                return(Ok(list.Data));
            }
            else
            {
                ResponseDTO <HttpStatusCode> statusResponse = ResponseManager.ConvertErrorToStatus(list.Error);
                return(Content(statusResponse.Data, statusResponse.Error));
            }
        }
Ejemplo n.º 7
0
        public IHttpActionResult SetRole([FromBody, Required] ParkingMasterFrontendDTO request)
        {
            UserManagementManager _userManager = new UserManagementManager();

            ResponseDTO <ParkingMasterFrontendDTO> response = _userManager.SetRole(request);

            if (response.Data != null)
            {
                return(Ok(response.Data));
            }
            else
            {
                ResponseDTO <HttpStatusCode> statusResponse = ResponseManager.ConvertErrorToStatus(response.Error);
                return(Content(statusResponse.Data, statusResponse.Error));
            }
        }
Ejemplo n.º 8
0
        public IHttpActionResult Session([FromBody, Required] ParkingMasterFrontendDTO request)
        {
            LoginManager loginManager = new LoginManager();

            ResponseDTO <ParkingMasterFrontendDTO> response = loginManager.SessionChecker(request.Token);

            if (response.Data != null)
            {
                return(Ok(response.Data));
            }
            else
            {
                ResponseDTO <HttpStatusCode> statusResponse = ResponseManager.ConvertErrorToStatus(response.Error);
                return(Content(statusResponse.Data, statusResponse.Error));
            }
        }
        public IHttpActionResult UserAcceptedTOS([FromBody, Required] ParkingMasterFrontendDTO request)
        {
            TermsOfServiceManager _tosManager = new TermsOfServiceManager();

            ResponseDTO <bool> response = _tosManager.UserAcceptTOS(request);

            if (response.Data != null)
            {
                return(Ok(response.Data));
            }
            else
            {
                ResponseDTO <HttpStatusCode> statusResponse = ResponseManager.ConvertErrorToStatus(response.Error);
                return(Content(statusResponse.Data, statusResponse.Error));
            }
        }
Ejemplo n.º 10
0
        public IHttpActionResult Delete([FromBody, Required] ParkingMasterFrontendDTO request)
        {
            if (request == null)
            {
                return(Content((HttpStatusCode)400, "Request is null."));
            }

            UserManagementManager userManager     = new UserManagementManager();
            ResponseDTO <bool>    managerResponse = userManager.DeleteUser(request);

            if (managerResponse.Data)
            {
                return(Ok());
            }
            else
            {
                ResponseDTO <HttpStatusCode> statusResponse = ResponseManager.ConvertErrorToStatus(managerResponse.Error);
                return(Content(statusResponse.Data, statusResponse.Error));
            }
        }
Ejemplo n.º 11
0
        // Delete User From ParkingMaster request
        public ResponseDTO <bool> DeleteUser(ParkingMasterFrontendDTO request)
        {
            ResponseDTO <bool> response = new ResponseDTO <bool>();

            // Check if request id is in guid format
            Guid token;

            try
            {
                token = new Guid(request.Token);
            }
            catch (Exception e)
            {
                response.Data  = false;
                response.Error = ErrorStrings.REQUEST_FORMAT;
                return(response);
            }

            ResponseDTO <Session> sessionDTO = _sessionService.GetSession(token);

            if (sessionDTO.Data == null)
            {
                response.Data  = false;
                response.Error = ErrorStrings.SESSION_NOT_FOUND;
            }

            ResponseDTO <bool> boolResponse;

            try
            {
                response = _userManagementService.DeleteUser(sessionDTO.Data.UserAccount.Id);
            }
            catch (Exception e)
            {
                response.Data  = false;
                response.Error = "Failed to delete userID: " + sessionDTO.Data.UserAccount.Id + "\n" + e.Message;
                return(response);
            }

            return(response);
        }
Ejemplo n.º 12
0
        public ResponseDTO <bool> LogoutUser(ParkingMasterFrontendDTO request)
        {
            ResponseDTO <bool> response = new ResponseDTO <bool>();

            // Check if request id is in guid format
            Guid sessionId;

            try
            {
                sessionId = new Guid(request.Token);
            }
            catch (Exception e)
            {
                response.Data  = false;
                response.Error = ErrorStrings.REQUEST_FORMAT;
                return(response);
            }
            var userId = _sessionService.GetSession(sessionId);

            _loggerService.LogAction(LogConstants.ACTION_LOGOUT, userId.Data.Id.ToString(), request.Token);
            return(_sessionService.DeleteSession(sessionId));
        }
Ejemplo n.º 13
0
        public ResponseDTO <bool> UserAcceptTOS(ParkingMasterFrontendDTO request)
        {
            ResponseDTO <bool> response = new ResponseDTO <bool>();

            // Convert token into Guid
            Guid tokenGuid;

            try
            {
                tokenGuid = new Guid(request.Token);
            }
            catch
            {
                response.Data  = false;
                response.Error = ErrorStrings.REQUEST_FORMAT;
                return(response);
            }

            // Check session in data store
            ResponseDTO <Session> sessionResponseDTO = _sessionService.GetSession(tokenGuid);

            // If session is not found, return error
            if (sessionResponseDTO.Data == null)
            {
                response.Data  = false;
                response.Error = sessionResponseDTO.Error;
                return(response);
            }

            // Check if user is currently disabled
            if (!sessionResponseDTO.Data.UserAccount.IsActive)
            {
                response.Data  = false;
                response.Error = ErrorStrings.USER_DISABLED;
                return(response);
            }

            return(_userManagementService.AcceptTOS(sessionResponseDTO.Data.UserAccount.Id));
        }
Ejemplo n.º 14
0
        public async Task <IHttpActionResult> DeleteFromAll([FromBody, Required] ParkingMasterFrontendDTO request)
        {
            LoginManager          loginManager = new LoginManager();
            UserManagementManager userManager  = new UserManagementManager();

            ResponseDTO <ParkingMasterFrontendDTO> response = loginManager.SessionChecker(request.Token);

            if (response.Data != null)
            {
                var deleteResponse = await userManager.DeleteUserFromApps(Guid.Parse(response.Data.Id));

                if (deleteResponse.IsSuccessStatusCode)
                {
                    return(Ok());
                }
                else
                {
                    ResponseDTO <HttpStatusCode> statusResponse = ResponseManager.ConvertErrorToStatus(response.Error);
                    return(Content(statusResponse.Data, statusResponse.Error));
                }
            }

            return(Content((HttpStatusCode)404, response.Error));
        }
Ejemplo n.º 15
0
        /*
         * public bool UpdateUser(User user)
         * {
         *  try
         *  {
         *      _userManagementService.UpdateUser(user);
         *      return true;
         *  }
         *  catch (Exception e)
         *  {
         *      Console.WriteLine(e.ToString());
         *      return false;
         *  }
         * }
         * public IEnumerable<User> GetAllUsers()
         * {
         *  return _userManagementService.GetAllUsers();
         * }
         */
        public ResponseDTO <ParkingMasterFrontendDTO> SetRole(ParkingMasterFrontendDTO request)
        {
            ResponseDTO <ParkingMasterFrontendDTO> response = new ResponseDTO <ParkingMasterFrontendDTO>();

            // Check if request id is in guid format
            Guid sessionId;

            try
            {
                sessionId = new Guid(request.Token);
            }
            catch (Exception e)
            {
                response.Data  = null;
                response.Error = ErrorStrings.SESSION_NOT_FOUND;
                return(response);
            }

            // Check if role is allowed
            if (!Roles.IsFrontendSelectableRole(request.Role))
            {
                response.Data  = null;
                response.Error = ErrorStrings.REQUEST_FORMAT;
                return(response);
            }

            // Check if session is active and get user information
            ResponseDTO <Session> sessionDTO = _sessionService.GetSession(sessionId);

            if (sessionDTO.Data == null)
            {
                response.Data  = null;
                response.Error = ErrorStrings.SESSION_NOT_FOUND;
            }

            // Check that user has permission to use this function
            List <ClaimDTO> requiredClaims = new List <ClaimDTO>()
            {
                new ClaimDTO("Action", "SetRole")
            };
            ResponseDTO <Boolean> authResponse = _authorizationClient.Authorize(sessionDTO.Data.UserAccount.Username, requiredClaims);

            if (!authResponse.Data)
            {
                response.Data  = null;
                response.Error = authResponse.Error;
                return(response);
            }

            // Set up user information that will change
            UserAccountDTO userAccountChanges = new UserAccountDTO()
            {
                Id       = sessionDTO.Data.UserAccount.Id,
                RoleType = request.Role
            };

            // Make user changes
            ResponseDTO <UserAccountDTO> userAccountResponse = _userManagementService.SetRole(userAccountChanges);

            if (userAccountResponse.Data == null)
            {
                response.Data  = null;
                response.Error = userAccountResponse.Error;
                return(response);
            }
            List <Claim> newClaims = _claimService.GetUserClaims(userAccountChanges.RoleType, userAccountResponse.Data.Username).Data;

            ResponseDTO <bool> editClaimsResponse;

            try
            {
                editClaimsResponse = _userManagementService.ResetUserClaims(userAccountChanges.Id, newClaims);
            }
            catch (Exception e)
            {
                response.Data  = null;
                response.Error = e.ToString();
                return(response);
            }

            if (!editClaimsResponse.Data)
            {
                response.Data  = null;
                response.Error = editClaimsResponse.Error;
                return(response);
            }

            response.Data       = new ParkingMasterFrontendDTO();
            response.Data.Id    = userAccountResponse.Data.Id.ToString();
            response.Data.Role  = userAccountResponse.Data.RoleType;
            response.Data.Token = sessionId.ToString();


            return(response);
        }