public IActionResult FilterAds(UpdateAdd filters) { string location = filters.LocationField; string potentialTitle = filters.TitleField; string loggedInUser = filters.Tasker; if (location == null) { location = ""; } if (potentialTitle == null) { potentialTitle = ""; } if (loggedInUser == null) { loggedInUser = ""; } if (!loggedInUser.Equals("")) { return(_HomeController.IndexLoggedIn(username: loggedInUser, location: location, potentialTitle: potentialTitle)); } else { return(_HomeController.Index(location: location, potentialTitle: potentialTitle)); } }
public void DeleteUserProfileTestWhenUserIsATaskerWithActiveTasks() { AddNewAd newAdForm = new AddNewAd(); newAdForm.TaskOwnerUsername = user.Username; newAdForm.TitleField = "Mock Title"; newAdForm.DescriptionField = "Mock Description"; newAdForm.LocationField = "Bursa"; newAdForm.AddressField = "Mock Address"; newAdForm.Currency = "TL"; newAdForm.Category = "Grocery Shopping"; newAdForm.PaymentAmountField = "20"; TaskController taskController = new TaskController(); UserController userController = new UserController(); taskController.ProcessNewAdData(newAdForm); user = userController.ReturnUserWithGivenUsername(newAdForm.TaskOwnerUsername); string usernameForTasker = "Mock-User-2"; string passwordForTasker = "123"; string nameForTasker = "Mock2"; string surnameForTasker = "User"; string emailForTasker = "*****@*****.**"; string addressForTasker = "Mock Address"; string phoneNumberForTasker = "123456789"; Models.User.ContactInformationAttribute contactInfoForTasker = new Models.User.ContactInformationAttribute(emailForTasker, phoneNumberForTasker, addressForTasker); userController.AddNewUser(usernameForTasker, passwordForTasker, nameForTasker, surnameForTasker, contactInfoForTasker); User tasker = userController.ReturnUserWithGivenUsername(usernameForTasker); UpdateAdd assignTaskForm = new UpdateAdd(); assignTaskForm.TaskIdField = user.Ads[1]; assignTaskForm.Tasker = usernameForTasker; var mockCurrentSession = new Mock <ICurrentSession>(); mockCurrentSession.Setup(x => x.SetUsername(user.Username)).Returns(true); ProfileController profileController = new ProfileController(mockCurrentSession.Object); Profile userProfile = new Profile(); userProfile.UsernameField = usernameForTasker; profileController.DeleteUserProfile(userProfile); user = userController.ReturnUserWithGivenUsername(user.Username); Models.Task task = taskController.ReturnTaskWithGivenTaskId(assignTaskForm.TaskIdField); Assert.AreNotEqual(null, task); Assert.AreEqual(false, task.IsAssignedToSomeone); Assert.AreEqual("", task.AssignedToUserWithThisUsername); Assert.AreEqual(true, user.Ads.Contains(assignTaskForm.TaskIdField)); taskController.DeleteTaskWithGivenTaskId(assignTaskForm.TaskIdField); }
public IActionResult MarkAsCompleted(UpdateAdd formForCompletion) { string currentUser = formForCompletion.Tasker; string adOwner = formForCompletion.TaskOwner; int relatedTaskId = formForCompletion.TaskIdField; User owner = _UserController.ReturnUserWithGivenUsername(adOwner); Email emailToOwner = new Email(owner.ContactInfo.Email, adOwner, "You job is completed!", _EmailController.JobCompletedMessage(adOwner, relatedTaskId, currentUser)); _EmailController.SendMail(emailToOwner); _TaskController.MarkTaskWithGivenTaskIdAsCompleted(relatedTaskId); return(_HomeController.MyTasks(currentUser)); }
public IActionResult RateTasker(UpdateAdd formWithRateAndTasker) { int taskId = formWithRateAndTasker.TaskIdField; _Connection.Open(); string sqlCommand = $"UPDATE ratings SET taskerstatus='true' WHERE taskid='{taskId}'"; NpgsqlCommand command = new NpgsqlCommand(sqlCommand, _Connection); command.ExecuteNonQuery(); _Connection.Close(); _UserController.UpdateUserRating(formWithRateAndTasker.Rate, formWithRateAndTasker.Tasker); return(_HomeController.MyAds(formWithRateAndTasker.TaskOwner)); }
public IActionResult QuitTask(UpdateAdd formWithTaskIdAndTasker) { int taskId = formWithTaskIdAndTasker.TaskIdField; Models.Task task = _TaskController.ReturnTaskWithGivenTaskId(taskId); User ownerOfTask = _UserController.ReturnUserWithGivenUsername(task.TaskOwnerUsername); string taskerUsername = formWithTaskIdAndTasker.Tasker; Email emailToOwner = new Email(ownerOfTask.ContactInfo.Email, ownerOfTask.Username, "The tasker quitted from the job!", _EmailController.TaskerQuittedMessage(ownerOfTask.Username, taskId, taskerUsername)); _TaskController.MarkTaskWithGivenTaskIdAsActive(taskId); _EmailController.SendMail(emailToOwner); _UserController.RemoveTaskFromUserWithGivenUsername(taskerUsername, taskId); return(_HomeController.MyTasks(taskerUsername)); }
public IActionResult DeleteAd(UpdateAdd formWithOnlyTaskId) { Models.Task taskWillBeDeleted = _TaskController.ReturnTaskWithGivenTaskId(formWithOnlyTaskId.TaskIdField); User tasker = _UserController.ReturnUserWithGivenUsername(taskWillBeDeleted.AssignedToUserWithThisUsername); if (tasker != null) { Email infoMailToTasker = new Email(tasker.ContactInfo.Email, tasker.Username, "The job is cancelled by the owner!", _EmailController.TheJobIsCancelledMessage(taskWillBeDeleted.TaskOwnerUsername, taskWillBeDeleted.TaskID)); _EmailController.SendMail(infoMailToTasker); _UserController.RemoveTaskFromUserWithGivenUsername(tasker.Username, taskWillBeDeleted.TaskID); } _UserController.RemoveAdFromUserWithGivenUsername(taskWillBeDeleted.TaskOwnerUsername, taskWillBeDeleted.TaskID); _TaskController.DeleteTaskWithGivenTaskId(formWithOnlyTaskId.TaskIdField); return(_HomeController.MyAds(taskWillBeDeleted.TaskOwnerUsername)); }
public void RateTaskOwnerTest() { int rate = 3; UserController userController = new UserController(); UpdateAdd updateAdForm = new UpdateAdd(); updateAdForm.Rate = rate; updateAdForm.TaskOwner = taskOwner.Username; updateAdForm.Tasker = tasker.Username; UpdateAddController updateAddController = new UpdateAddController(); updateAddController.RateTaskOwner(updateAdForm); taskOwner = userController.ReturnUserWithGivenUsername(taskOwner.Username); Assert.AreEqual(4, taskOwner.Rating); }
public void TestAssignAd() { UpdateAdd newForm = new UpdateAdd(); newForm.TaskIdField = ad.TaskID; newForm.Tasker = tasker.Username; UpdateAddController updateAddController = new UpdateAddController(); updateAddController.AssignAd(newForm); TaskController taskController = new TaskController(); ad = taskController.ReturnTaskWithGivenTaskId(ad.TaskID); Assert.AreEqual(true, ad.IsAssignedToSomeone); Assert.AreEqual(tasker.Username, ad.AssignedToUserWithThisUsername); }
public IActionResult ProcessUpdatedAdInformation(UpdateAdd updatedAdInformation) { int paymentAmount = 0; bool result = int.TryParse(updatedAdInformation.PaymentAmountField, out paymentAmount); Models.Task oldTaskInfo = _TaskController.ReturnTaskWithGivenTaskId(updatedAdInformation.TaskIdField); updatedAdInformation.LocationField = updatedAdInformation.Country + " " + updatedAdInformation.State + " " + updatedAdInformation.City; updatedAdInformation.PaymentAmountField = updatedAdInformation.PaymentAmountField + " " + updatedAdInformation.Currency; Models.Task ad = new Models.Task(true, updatedAdInformation.TaskIdField, oldTaskInfo.TaskOwnerUsername, oldTaskInfo.CreationDate, updatedAdInformation.TitleField, updatedAdInformation.DescriptionField, oldTaskInfo.Location, updatedAdInformation.AddressField, oldTaskInfo.TaskPhotoUrl, updatedAdInformation.PaymentAmountField, oldTaskInfo.IsAssignedToSomeone, oldTaskInfo.AssignedToUserWithThisUsername, oldTaskInfo.IsCompleted, updatedAdInformation.CategoryField); if (!result) { return(_TaskController.LoadUpdatedMyAds(ad, "fail-payment")); } return(_TaskController.LoadUpdatedMyAds(ad, "success")); }
public IActionResult AssignAd(UpdateAdd formWithTaskIdAndTasker) { int taskId = formWithTaskIdAndTasker.TaskIdField; string tasker = formWithTaskIdAndTasker.Tasker; Models.Task task = _TaskController.ReturnTaskWithGivenTaskId(taskId); User owner = _UserController.ReturnUserWithGivenUsername(task.TaskOwnerUsername); User taskTaker = _UserController.ReturnUserWithGivenUsername(tasker); _UserController.AddNewTaskToUserWithGivenUsername(tasker, taskId); _TaskController.AssignTaskToUserWithGivenUsername(taskId, tasker); Email emailToOwner = new Email(owner.ContactInfo.Email, owner.Username, "A tasker is accepted the job!", _EmailController.PrepareATaskerFoundMessage(task.Title, task.TaskOwnerUsername, tasker)); _EmailController.SendMail(emailToOwner); Email emailToTasker = new Email(taskTaker.ContactInfo.Email, tasker, "The task " + task.Title + " is assigned to you!", _EmailController.PrepareTaskIsAssignedToYouMessage(task.Title, owner.Username, taskId)); _EmailController.SendMail(emailToTasker); return(_HomeController.MyTasks(tasker)); }
public void QuitTaskTest() { UpdateAdd newForm = new UpdateAdd(); TaskController taskController = new TaskController(); newForm.TaskIdField = ad.TaskID; newForm.Tasker = tasker.Username; UpdateAddController updateAddController = new UpdateAddController(); updateAddController.AssignAd(newForm); UpdateAdd quitForm = new UpdateAdd(); quitForm.TaskIdField = ad.TaskID; quitForm.Tasker = tasker.Username; quitForm.TaskOwner = taskOwner.Username; updateAddController.QuitTask(quitForm); ad = taskController.ReturnTaskWithGivenTaskId(ad.TaskID); Assert.AreEqual(false, ad.IsAssignedToSomeone); Assert.AreEqual("", ad.AssignedToUserWithThisUsername); }