コード例 #1
0
        public IHttpActionResult GetPage([FromUri] string senderID)
        {
            if (!LoggedUsers.Contains(senderID))
            {
                return(Content(HttpStatusCode.Unauthorized, "Not logged in."));
            }

            try
            {
                if (DbAdmin.Exists(senderID))
                {
                    return(Ok("./Content/partials/adminProfile.html"));
                }
                else if (DbDriver.Exists(senderID))
                {
                    return(Ok("./Content/partials/driverProfile.html"));
                }
                else if (DbCustomer.Exists(senderID))
                {
                    return(Ok("./Content/partials/customerProfile.html"));
                }
                else
                {
                    return(NotFound());
                }
            }
            catch (Exception e)
            {
                Trace.Write($"Error on 'Login()'. Error message: {e.Message}");
                Trace.Write($"[STACK_TRACE] {e.StackTrace}");
                return(InternalServerError(e));
            }
        }
コード例 #2
0
        public IHttpActionResult Login([FromBody] LoginModel loginModel)
        {
            if (LoggedUsers.Contains(loginModel.Username))
            {
                return(Content(HttpStatusCode.Conflict, $"User '{loginModel.Username}' already logged in."));
            }

            IUser result = null;

            try
            {
                if (DbAdmin.Exists(loginModel.Username))
                {
                    result = DbAdmin.GetSingleEntityByKey(loginModel.Username);
                }
                else if (DbDriver.Exists(loginModel.Username))
                {
                    result = DbDriver.GetSingleEntityByKey(loginModel.Username);
                }
                else if (DbCustomer.Exists(loginModel.Username))
                {
                    result = DbCustomer.GetSingleEntityByKey(loginModel.Username);
                }
            }
            catch (Exception e)
            {
                Trace.Write($"Error on 'Login()'. Error message: {e.Message}");
                Trace.Write($"[STACK_TRACE] {e.StackTrace}");
                return(InternalServerError(e));
            }

            if (result == null)
            {
                return(NotFound());
            }

            if (result.Password.Equals(loginModel.Password))
            {
                LoggedUsers.Add(loginModel.Username);
                return(Ok(result));
            }
            else
            {
                return(BadRequest($"Entered password did not match the required one for user '{loginModel.Username}'."));
            }
        }
コード例 #3
0
        public IHttpActionResult GetNonDriver([FromUri] string senderID, [FromUri] string userIdToGet)
        {
            IUser result = null;

            if (!LoggedUsers.Contains(senderID))
            {
                return(Content(HttpStatusCode.Unauthorized, "Not logged in."));
            }

            try
            {
                if (DbAdmin.Exists(userIdToGet))
                {
                    if (!DbAdmin.Exists(senderID))
                    {
                        return(Content(HttpStatusCode.Unauthorized, "Not a dispatcher."));
                    }

                    result = DbAdmin.GetSingleEntityByKey(userIdToGet);
                }
                else if (DbCustomer.Exists(userIdToGet))
                {
                    if (!DbAdmin.Exists(senderID) || senderID != userIdToGet)
                    {
                        return(Content(HttpStatusCode.Unauthorized, "Not a dispatcher nor the user whose information are requested."));
                    }

                    result = DbAdmin.GetSingleEntityByKey(userIdToGet);
                }
            }
            catch (Exception e)
            {
                Trace.Write($"Error on 'GetNonDriver()'. Error message: {e.Message}");
                Trace.Write($"[STACK_TRACE] {e.StackTrace}");
                return(InternalServerError(e));
            }


            if (result == null)
            {
                return(NotFound());
            }

            return(Ok(result));
        }
コード例 #4
0
        // DELETE api/drivers/5
        public IHttpActionResult DeleteUser([FromUri] string senderID, [FromUri] string userToDelete)
        {
            bool result = false;

            if (!LoggedUsers.Contains(senderID))
            {
                return(Content(HttpStatusCode.Unauthorized, "Not logged in."));
            }
            else if (!DbAdmin.Exists(senderID))
            {
                return(Content(HttpStatusCode.Unauthorized, "Not a dispatcher."));
            }

            try
            {
                if (DbAdmin.Exists(userToDelete))
                {
                    //TODO: sta ako obrise samog sebe logout?
                    result = DbAdmin.Delete(userToDelete);
                }
                else if (DbDriver.Exists(userToDelete))
                {
                    result = DbDriver.Delete(userToDelete);
                }
                else if (DbCustomer.Exists(userToDelete))
                {
                    result = DbCustomer.Delete(userToDelete);
                }
            }
            catch (Exception e)
            {
                Trace.Write($"Error on 'DeleteUser()'. Error message: {e.Message}");
                Trace.Write($"[STACK_TRACE] {e.StackTrace}");
                return(InternalServerError(e));
            }

            if (result)
            {
                return(Ok());
            }
            else
            {
                return(NotFound());
            }
        }
コード例 #5
0
        // PUT api/drivers/5
        public IHttpActionResult PutNonDriver([FromUri] string senderID, [FromBody] GeneralUserModel user)
        {
            if (!LoggedUsers.Contains(senderID))
            {
                return(Content(HttpStatusCode.Unauthorized, "Not logged in."));
            }

            bool result = false;

            if (DbAdmin.Exists(user.Username))
            {
                if (!DbAdmin.Exists(senderID))
                {
                    return(Content(HttpStatusCode.Unauthorized, "Not a dispatcher."));
                }

                try
                {
                    Admin admin = new Admin(user.Username, user.Password)
                    {
                        FirstName = user.FirstName,
                        LastName  = user.LastName,
                        Gender    = user.Gender,
                        JMBG      = user.JMBG,
                        Phone     = user.Phone,
                        Email     = user.Email,
                    };
                    user.TaxiDrivesIDs.ForEach(td => admin.TaxiDrives.Add(DbTaxiDrive.GetSingleEntityByKey(td)));

                    result = DbAdmin.Modify(admin as Admin);
                }
                catch (Exception e)
                {
                    Trace.Write($"Error on 'PutNonDriver()'. Error message: {e.Message}");
                    Trace.Write($"[STACK_TRACE] {e.StackTrace}");
                    return(InternalServerError(e));
                }
            }
            else if (DbCustomer.Exists(user.Username))
            {
                if (!DbAdmin.Exists(senderID) || senderID != user.Username)
                {
                    return(Content(HttpStatusCode.Unauthorized, "Not a dispatcher nor the user to be modifed."));
                }

                try
                {
                    Customer customer = new Customer(user.Username, user.Password)
                    {
                        FirstName = user.FirstName,
                        LastName  = user.LastName,
                        Gender    = user.Gender,
                        JMBG      = user.JMBG,
                        Phone     = user.Phone,
                        Email     = user.Email,
                    };
                    user.TaxiDrivesIDs.ForEach(td => customer.TaxiDrives.Add(DbTaxiDrive.GetSingleEntityByKey(td)));

                    result = DbCustomer.Modify(customer as Customer);
                }
                catch (Exception e)
                {
                    Trace.Write($"Error on 'PutNonDriver()'. Error message: {e.Message}");
                    Trace.Write($"[STACK_TRACE] {e.StackTrace}");
                    return(InternalServerError(e));
                }
            }

            if (result)
            {
                return(Ok(user));
            }
            else
            {
                return(NotFound());
            }
        }