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)); } }
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}'.")); } }
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)); }
// 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()); } }
// 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()); } }