public async Task <JsonResult> Create(Employer employer, string userName) { ModelState.ThrowIfInvalid(); var modelIsValid = await _adaptor.TryUpdateModelAsync(this, employer); if (modelIsValid) { var saved = _serv.Create(employer, userName); var result = _map.Map <Employer, ViewModel.Employer>(saved); return(Json(new { sNewRef = result.tabref, sNewLabel = result.tablabel, iNewID = result.ID, jobSuccess = true })); } else { return(Json(new { jobSuccess = false, rtnMessage = $"{ModelState.GetErrorMessageIfInvalid()}" })); } }
public JsonResult Edit(int id, FormCollection collection, string userName) { Employer employer = serv.Get(id); UpdateModel(employer); serv.Save(employer, userName); return(Json(new { jobSuccess = true })); }
public JsonResult Create(Employer employer, string userName) { UpdateModel(employer); Employer newEmployer = serv.Create(employer, userName); var result = map.Map <Employer, ViewModel.Employer>(newEmployer); return(Json(new { sNewRef = result.tabref, sNewLabel = result.tablabel, iNewID = result.ID, jobSuccess = true })); }
public void createcombined_valid_post_returns_json() { //Arrange var combined = new EmployerWoCombined { name = "unit test" }; var employer = new Employer { ID = 4242 }; var wo = new WorkOrder { ID= 4243, EmployerID = 4242 }; serv.Setup(p => p.Create(It.IsAny<Employer>(), "UnitTest")).Returns(employer); woServ.Setup(p => p.Create(It.IsAny<WorkOrder>(), "UnitTest")).Returns(wo); ctrlr.ValueProvider = form.ToValueProvider(); //Act var result = ctrlr.CreateCombined(combined, "UnitTest"); //Assert Assert.IsInstanceOfType(result, typeof(JsonResult)); //Assert.IsInstanceOfType(result.Data["EmployerWoConbined"], typeof(EmployerWoCombined)); Assert.AreEqual("{ iEmployerID = 4242, iWorkOrderID = 4243, jobSuccess = True }", result.Data.ToString()); }
private string _getTabRef(Employer emp) { if (emp == null) return null; return "/Employer/Edit/" + Convert.ToString(emp.ID); }
public JsonResult Create(Employer employer, string userName) { UpdateModel(employer); Employer newEmployer = serv.Create(employer, userName); return Json(new { sNewRef = _getTabRef(newEmployer), sNewLabel = _getTabLabel(newEmployer), iNewID = newEmployer.ID, jobSuccess = true }, JsonRequestBehavior.AllowGet); }
private string _getTabLabel(Employer emp) { if (emp == null) return null; return emp.name; }
public ActionResult HirerProfile(Employer e, string userName) { UpdateModel(e); // Retrieve user ID of signed in Employer string userID = HttpContext.User.Identity.GetUserId(); // Retrieve Employer record Employer onlineEmp = eServ.GetRepo().GetAllQ().Where(emp => emp.onlineSigninID == userID).FirstOrDefault(); if (onlineEmp != null) { Employer onlineEmployer = eServ.Get(onlineEmp.ID); //e.ID = onlineEmployer.ID; onlineEmployer.active = true; onlineEmployer.address1 = e.address1; onlineEmployer.address2 = e.address2; onlineEmployer.business = e.business; onlineEmployer.businessname = e.businessname; onlineEmployer.cellphone = e.cellphone; onlineEmployer.city = e.city; onlineEmployer.email = e.email; onlineEmployer.isOnlineProfileComplete = true; onlineEmployer.name = e.name; onlineEmployer.onlineSigninID = HttpContext.User.Identity.GetUserId(); onlineEmployer.onlineSource = true; onlineEmployer.phone = e.phone; onlineEmployer.receiveUpdates = e.receiveUpdates; onlineEmployer.referredby = e.referredby; onlineEmployer.referredbyOther = e.referredbyOther; onlineEmployer.returnCustomer = e.returnCustomer; onlineEmployer.state = e.state; onlineEmployer.zipcode = e.zipcode; // Employer has created profile already - just need to update profile eServ.Save(onlineEmployer, userName); return View("Index"); } else { // Create Employer record Employer newEmployer = eServ.Create(e, userName); return View("Index"); } }
public ActionResult Create() { var _model = new Employer(); _model.active = true; // _model.city = "Seattle"; // no null types allowed in var // _model.state = "WA"; // no null types allowed in var _model.blogparticipate = false; _model.referredby = Lookups.getDefaultID(LCategory.emplrreference); return PartialView("Create", _model); }
public void EmployerController_edit_post_valid_updates_model_returns_json() { //Arrange const int testid = 4242; var fakeemployer = new Employer(); var savedemployer = new Employer(); serv.Setup(p => p.Get(testid)).Returns(fakeemployer); serv.Setup(x => x.Save(It.IsAny<Employer>(), It.IsAny<string>()) ).Callback((Employer p, string str) => { savedemployer = p; }); ctrlr.ValueProvider = form.ToValueProvider(); //Act var result = ctrlr.Edit(testid, form, "UnitTest"); //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(JsonResult)); Assert.AreEqual("{ jobSuccess = True }", result.Data.ToString()); Assert.AreEqual(fakeemployer, savedemployer); Assert.AreEqual(savedemployer.name, "blah"); Assert.AreEqual(savedemployer.address1, "UnitTest"); Assert.AreEqual(savedemployer.city, "footown"); }
public bool employerDelete(Employer _emp) { WaitThenClickElement(By.Id("deleteEmployerButton-" + _emp.ID.ToString())); WaitThenClickElement(By.Id("popup_ok")); Thread.Sleep(5000); WaitForElement(By.Id("employerTable_searchbox")).SendKeys(_emp.name); bool result = WaitForElementValue(By.XPath("//table[@id='employerTable']/tbody/tr/td[1]"), "No matching records found"); Assert.IsTrue(result, "Employer not deleted properly"); return true; }
public void create_post_invalid_throws_exception() { //Arrange var employer = new Employer(); form.Remove("name"); serv = new Mock<IEmployerService>(); serv.Setup(p => p.Create(employer, "UnitTest")).Returns(employer); woServ = new Mock<IWorkOrderService>(); ctrlr = new EmployerController(serv.Object, woServ.Object); ctrlr.SetFakeControllerContext(); ctrlr.ValueProvider = form.ToValueProvider(); JsonResult result = ctrlr.Create(employer, "UnitTest"); Assert.IsNotNull(result); }
public void EmployerController_edit_get_returns_employer() { //Arrange serv = new Mock<IEmployerService>(); var fakeemployer = new Employer(); serv.Setup(p => p.Get(Testid)).Returns(fakeemployer); woServ = new Mock<IWorkOrderService>(); ctrlr = new EmployerController(serv.Object, woServ.Object); //Act var result = ctrlr.Edit(Testid) as PartialViewResult; //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result.ViewData.Model, typeof(Employer)); }
/// <summary> /// /// </summary> /// <param name="_emp"></param> /// <returns></returns> public bool employerValidate(Employer _emp) { // // get recordid for finding new record. ID is {recType}{recID}-{field} string prefix = "employer" + _emp.ID.ToString() + "-"; Func<string, string, bool> getAttributeAssertEqual = ((p, q) => { Assert.AreEqual(p, WaitForElement(By.Id(prefix + q)).GetAttribute("value"), "New employer " + q + "doesn't match original."); return true; }); getAttributeAssertEqual(_emp.name, "name"); getAttributeAssertEqual(_emp.address1, "address1"); getAttributeAssertEqual(_emp.address2, "address2"); getAttributeAssertEqual(_emp.city, "city"); getAttributeAssertEqual(_emp.state, "state"); getAttributeAssertEqual(_emp.zipcode, "zipcode"); getAttributeAssertEqual(_emp.licenseplate, "licenseplate"); getAttributeAssertEqual(_emp.driverslicense, "driverslicense"); //getAttributeAssertEqual(_emp.businessname, "businessname"); getAttributeAssertEqual(_emp.phone, "phone"); getAttributeAssertEqual(_emp.cellphone, "cellphone"); //getAttributeAssertEqual(_emp.referredby.ToString(), "referredby"); getAttributeAssertEqual(_emp.email, "email"); getAttributeAssertEqual(_emp.notes, "notes"); getAttributeAssertEqual(_emp.referredbyOther, "referredbyOther"); WaitForElement(By.Id(prefix + "active")); Assert.AreEqual(_emp.active ? 2 : 1, GetOptionIndex(By.Id(prefix + "active"))); WaitForElement(By.Id(prefix + "blogparticipate")); Assert.AreEqual(_emp.blogparticipate ? 2 : 1, GetOptionIndex(By.Id(prefix + "blogparticipate"))); WaitForElement(By.Id(prefix + "business")); Assert.AreEqual(_emp.business ? 2 : 1, GetOptionIndex(By.Id(prefix + "business"))); WaitForElement(By.Id(prefix + "referredbyOther")); Assert.AreEqual(_emp.referredby, MacheteLookup.cache.First(c => c.category == "emplrreference" && c.text_EN == GetOptionText(By.Id(prefix + "referredby"))).ID); return true; }
/// <summary> /// Activate work order. Assumes start at WA ListTab. /// </summary> /// <param name="_emp"></param> /// <param name="_wo"></param> /// <param name="_wa"></param> /// <returns></returns> public bool workAssignmentActivate(Employer _emp, WorkOrder _wo, WorkAssignment _wa) { // Verify we're on the WA ListTab we expected WaitForElement(By.Id("walt-" + _wo.ID)); // Look for WA datatable to have a first row (at least one record) By walt = By.XPath("//table[@id='workAssignTable-wo-" + _wo.ID + "']/tbody/tr/td[1]"); // The #####-## order number from the first column var waltText = WaitForElement(walt).Text; WaitForElementValue(walt, _wa.getFullPseudoID()); Assert.AreEqual(_wa.getFullPseudoID(), waltText, "Unexpected PseudoID in assignment's list"); Thread.Sleep(1000); WaitThenClickElement(By.Id("activateWorkOrderButton-" + _wo.ID)); // todo: find a way to change this hard-coded value assignment _wo.status = 40; // changing test object to reflect activate status from previous action return true; }
public bool workOrderCreate(Employer _emp, WorkOrder _wo) { string prefix = "WO0-"; WaitThenClickElement(By.Id("workOrderCreateTab_" + _emp.ID)); WaitForElement(By.Id(prefix + "contactName")); ReplaceElementText(By.Id(prefix + "contactName"), _wo.contactName); //ReplaceElementText(By.Id(prefix + "dateTimeofWork"), String.Format("{MM/dd/yyyy hh:mm tt}", _wo.dateTimeofWork)); ReplaceElementText(By.Id(prefix + "paperOrderNum"), _wo.paperOrderNum.ToString()); //ReplaceElementText(By.Id(prefix + "timeFlexible"), _wo.timeFlexible.ToString()); //ReplaceElementText(By.Id(prefix + "permanentPlacement"), _wo.permanentPlacement); ReplaceElementText(By.Id(prefix + "workSiteAddress1"), _wo.workSiteAddress1); ReplaceElementText(By.Id(prefix + "workSiteAddress2"), _wo.workSiteAddress2); //ReplaceElementText(By.Id(prefix + "englishRequired"), _wo.englishRequired); ReplaceElementText(By.Id(prefix + "phone"), _wo.phone); //ReplaceElementText(By.Id(prefix + "lunchSupplied"), _wo.lunchSupplied); ReplaceElementText(By.Id(prefix + "city"), _wo.city); ReplaceElementText(By.Id(prefix + "state"), _wo.state); //ReplaceElementText(By.Id(prefix + "transportMethodID"), _wo.transportMethodID); ReplaceElementText(By.Id(prefix + "zipcode"), _wo.zipcode); //ReplaceElementText(By.Id(prefix + "transportFee"), _wo.transportFee); //ReplaceElementText(By.Id(prefix + "transportFeeExtra"), _wo.transportFeeExtra); //ReplaceElementText(By.Id(prefix + "englishRequiredNote"), _wo.englishRequiredNote); ReplaceElementText(By.Id(prefix + "description"), _wo.description); // SelectOption(By.Id(prefix + "status"), MacheteLookup.cache.First(c => c.category == "orderstatus" && c.ID == _wo.status).text_EN); SelectOptionByIndex(By.Id(prefix + "transportMethodID"), _wo.transportMethodID); SelectOptionByIndex(By.Id(prefix + "timeFlexible"), _wo.timeFlexible ? 2 : 1); SelectOptionByIndex(By.Id(prefix + "permanentPlacement"), _wo.permanentPlacement ? 2 : 1); SelectOptionByIndex(By.Id(prefix + "englishRequired"), _wo.englishRequired ? 2 : 1); SelectOptionByIndex(By.Id(prefix + "lunchSupplied"), _wo.lunchSupplied ? 2 : 1); Thread.Sleep(1000); //prevent race condition if (_wo.workerRequests != null) foreach (var request in _wo.workerRequests) { WaitThenClickElement(By.Id("addRequestBtn-" + _wo.ID)); ReplaceElementText(By.XPath("//*[@id='workerTable-0_filter']/label/input"), request.ID.ToString()); WaitThenClickElement(By.XPath("//*[@id='workerTable-0']/tbody/tr/td[1]")); } Thread.Sleep(1000); //prevent race condition // // save work order _d.FindElement(By.Id(prefix + "SaveBtn")).Click(); // // Find new work order tab (css class "WO"), get embedded WOID, populate // WO object _wo.ID = getSelectedTabRecordID("WO"); Assert.IsTrue(_d.FindElement(By.CssSelector("li.WO.ui-tabs-selected > a")) .Text == Machete.Web.Resources.WorkOrders.tabprefix + _wo.getTabLabel(), "Work order anchor label doesn't match work order"); return true; }
public bool workAssignmentValidate(Employer _emp, WorkOrder _wo, WorkAssignment _wa) { Thread.Sleep(1000); WaitThenClickElement(By.Id("WO" + _wo.ID + "-EditTab")); Thread.Sleep(1000); WaitThenClickElement(By.Id("WO" + _wo.ID + "-EditTab")); Thread.Sleep(1000); WaitForElement(By.Id("walt-" + _wo.ID)); WaitThenClickElement(By.Id("walt-" + _wo.ID)); Thread.Sleep(1000); WaitForElement(By.Id("workAssignTable-wo-" + _wo.ID + "_searchbox")); string idString = _wo.ID.ToString("D5") + "-" + ((int)_wa.pseudoID).ToString("D2"); ReplaceElementText(By.Id("workAssignTable-wo-" + _wo.ID + "_searchbox"), idString); Thread.Sleep(1000); string xpath = "//*[@id='workAssignTable-wo-" + _wo.ID + "']/tbody/tr/td[.='" + idString + "']"; Assert.IsTrue(WaitAndDoubleClick(By.XPath(xpath)), "Cannot find work assignment row to click."); //Now, check each of the fields string prefix = "WA" + _wa.ID + "-"; WaitForElement(By.Id(prefix + "englishLevelID")); WaitForElement(By.Id(prefix + "hours")); //Doing a lot of waits up front here because I was having some problems with the englishLevelID getting WaitForElement(By.Id(prefix + "hourRange")); //detached from the DOM if I grab it too early. A short sleep seemed to work, but waits make sure. WaitForElement(By.Id(prefix + "days")); WaitForElement(By.Id(prefix + "skillID")); WaitForElement(By.Id(prefix + "hourlyWage")); WaitForElement(By.Id(prefix + "total")); Thread.Sleep(50); Assert.AreEqual(_wa.englishLevelID.ToString(), GetOptionValue(By.Id(prefix + "englishLevelID"))); Assert.AreEqual(_wa.hours, GetOptionIndex(By.Id(prefix + "hours"))); if (_wa.hourRange != null) Assert.AreEqual(_wa.hourRange, GetOptionIndex(By.Id(prefix + "hourRange")) + 6); Assert.AreEqual(_wa.days, GetOptionIndex(By.Id(prefix + "days"))); string skillIDValue = GetOptionValue(By.Id(prefix + "skillID")); Assert.AreEqual(_wa.skillID.ToString(), skillIDValue); WaitForElement(By.Id(prefix + "hourlyWage")); Assert.AreEqual(_wa.hourlyWage.ToString("F"), WaitForElement(By.Id(prefix + "hourlyWage")).GetAttribute("value")); WaitForElement(By.Id(prefix + "total")); Assert.AreEqual("$" +(_wa.hourlyWage * _wa.hours * _wa.days).ToString("F"), WaitForElement(By.Id(prefix + "total")).GetAttribute("value")); Assert.AreEqual(_wa.pseudoID.ToString(), WaitForElement(By.Id(prefix + "pseudoID")).GetAttribute("Value")); // Now change field values and check field relationships //reset to default values SelectOptionByIndex(By.Id(prefix + "englishLevelID"), 0); SelectOptionByIndex(By.Id(prefix + "skillID"), 0); ReplaceElementText(By.Id(prefix + "hourlyWage"), "0"); SelectOptionByIndex(By.Id(prefix + "hours"), 0); SelectOptionByIndex(By.Id(prefix + "hourRange"), 0); SelectOptionByIndex(By.Id(prefix + "days"), 0); SelectOptionByIndex(By.Id(prefix + "hourRange"), 0); //check default form response Assert.AreEqual("not calculable", WaitForElement(By.Id(prefix + "total")).GetAttribute("value")); Assert.AreEqual("not calculable", WaitForElement(By.Id(prefix + "totalRange")).GetAttribute("value")); //change skill and make sure wage and hours changed SelectOptionByIndex(By.Id(prefix + "skillID"), 1); Assert.IsFalse(Convert.ToInt32(WaitForElement(By.Id(prefix + "hourlyWage")).GetAttribute("value")) == 0, "Hourly Wage failed reaction to skill selection"); var indexResult = GetOptionIndex(By.Id(prefix + "hours")); //Assert.AreEqual(0, indexResult, "Hours dropdown failed reaction to skill selection"); //set hourly range and days then check total and max total SelectOptionByIndex(By.Id(prefix + "hourRange"), 3); SelectOptionByIndex(By.Id(prefix + "days"), 1); int hourlyWage = Convert.ToInt32(WaitForElement(By.Id(prefix + "hourlyWage")).GetAttribute("value")); int hoursWork = Convert.ToInt32(WaitForElement(By.Id(prefix + "hours")).GetAttribute("value")); int hourRange = Convert.ToInt32(GetOptionValue(By.Id(prefix + "hourRange"))); int daysWork = Convert.ToInt32(GetOptionValue(By.Id(prefix + "days"))); Assert.AreEqual("$" + (hourlyWage * hoursWork * daysWork).ToString("F"), WaitForElement(By.Id(prefix + "total")).GetAttribute("value"), "Total pay doesn't match hour, wage and day calculation"); Assert.AreEqual("$" + (hourlyWage * hourRange * daysWork).ToString("F"), WaitForElement(By.Id(prefix + "totalRange")).GetAttribute("value"), "Max Total pay doesn't match hourRange, wage and day calculation"); //select fixed job and verify hourly pay is fixed // TODO: Find another way of testing this. I took fixed categories out of the Lookups. // Centers should be aware that they *can* fix pay in the config, but Casa Latina is the // only center that's had that as a requirement for certain types of jobs. //String skillValue = MacheteLookup.cache.First(x => x.category == LCategory.skill && x.text_EN == "DWC Chambita 1hr").ID.ToString(); //SelectOptionByValue(By.Id(prefix + "skillID"), skillValue); //Thread.Sleep(1000); // to avoid race condition //Assert.AreEqual("true", WaitForElement(By.Id(prefix + "hourlyWage")).GetAttribute("disabled"), "Hourly Wage should be fixed (disabled) in response to skill selection"); return true; }
/// <summary> /// Create new assignment. Last action executes Create Button, returning to List Tab. /// </summary> /// <param name="emp"></param> /// <param name="wo"></param> /// <param name="wa"></param> /// <returns></returns> public bool workAssignmentCreate(Employer emp, WorkOrder wo, WorkAssignment wa) { // Click on the assignment Create Tab WaitThenClickElement(By.Id("wact-" + wo.ID)); //the ID here is the WorkOrder.ID, not the Employer.ID WaitForElement(By.Id(wa.idPrefix + "description")); SelectOption(By.Id(wa.idPrefix + "englishLevelID"), wa.englishLevelID.ToString()); SelectOptionByValue(By.Id(wa.idPrefix + "skillID"), wa.skillID.ToString()); ReplaceElementText(By.Id(wa.idPrefix + "hourlyWage"), wa.hourlyWage.ToString()); SelectOption(By.Id(wa.idPrefix + "hours"), wa.hours.ToString()); if (wa.hourRange.ToString().Length > 0) SelectOption(By.Id(wa.idPrefix + "hourRange"), wa.hourRange.ToString()); SelectOption(By.Id(wa.idPrefix + "days"), wa.days.ToString()); ReplaceElementText(By.Id(wa.idPrefix + "description"), wa.description); WaitForElement(By.Id("WO" + wo.ID + "-waCreateBtn")).Click(); Thread.Sleep(1000); wa.ID = getSelectedTabRecordID("WA"); WaitForElement(By.Id(wa.idPrefix + "EditTab")); WaitThenClickElement(By.Id("walt-" + wo.ID)); return true; }
public void create_valid_post_returns_json() { //Arrange var employer = new Employer {ID = 4242, name = "unit test"}; serv.Setup(p => p.Create(employer, "UnitTest")).Returns(employer); ctrlr.ValueProvider = form.ToValueProvider(); //Act var result = ctrlr.Create(employer, "UnitTest"); //Assert Assert.IsInstanceOfType(result, typeof(JsonResult)); Assert.AreEqual("{ sNewRef = /Employer/Edit/12345, sNewLabel = blah, iNewID = 12345, jobSuccess = True }", result.Data.ToString()); }
public void EmployerService_DeleteEmployer() { // //Arrange _repo = new Mock<IEmployerRepository>(); _uow = new Mock<IUnitOfWork>(); _woServ = new Mock<IWorkOrderService>(); var _e = (Employer)Records.employer.Clone(); string user = "******"; int id = 1; Employer dp = new Employer(); _repo.Setup(r => r.Delete(It.IsAny<Employer>())).Callback((Employer p) => { dp = p; }); _repo.Setup(r => r.GetById(id)).Returns(_e); var _serv = new EmployerService(_repo.Object, _woServ.Object, _uow.Object); // //Act _serv.Delete(id, user); // //Assert Assert.AreEqual(dp, _e); }
public void EmployerController_edit_post_invalid_throws_exception() { //Arrange var employer = new Employer(); // // Mock service and setup SaveEmployer mock serv.Setup(p => p.Save(employer, "UnitTest")); serv.Setup(p => p.Get(Testid)).Returns(employer); // // Mock HttpContext so that ModelState and FormCollection work form.Remove("phone"); ctrlr.ValueProvider = form.ToValueProvider(); // //Act //_ctrlr.ModelState.AddModelError("TestError", "foo"); ctrlr.Edit(Testid, form, "UnitTest"); //Assert }
public ActionResult Create(WorkOrder wo, string userName, string workerAssignments) { UpdateModel(wo); // Retrieve user ID of signed in Employer string userID = HttpContext.User.Identity.GetUserId(); // Retrieve Employer record Employer onlineEmployer = eServ.GetRepo().GetAllQ().Where(e => e.onlineSigninID == userID).FirstOrDefault(); if (onlineEmployer != null) { // Employer has created profile or work order already // Associate WO with Employer wo.EmployerID = onlineEmployer.ID; } else { // Employer has NOT created profile or work order yet Employer employer = new Employer(); // Set up default values from WO employer.name = wo.contactName; employer.phone = wo.phone; employer.address1 = wo.workSiteAddress1; employer.address2 = wo.workSiteAddress2; employer.city = wo.city; employer.state = wo.state; employer.zipcode = wo.zipcode; // Set up default online Employer profile employer.isOnlineProfileComplete = true; employer.onlineSigninID = userID; employer.email = HttpContext.User.Identity.GetUserName(); // The Employer's username is their email address employer.active = true; employer.business = false; employer.blogparticipate = false; employer.onlineSource = true; employer.returnCustomer = false; employer.receiveUpdates = true; employer.business = false; Employer newEmployer = eServ.Create(employer, userName); if (newEmployer != null) { wo.EmployerID = newEmployer.ID; } } // Set disclosure agreement - to get here, the user had to accept wo.disclosureAgreement = true; if (workerAssignments == "") { // Set WA counter wo.waPseudoIDCounter = 0; } // Create Work Order WorkOrder neworder = woServ.Create(wo, userName); if (workerAssignments != "") { // Create Work Assignments dynamic parsedWorkerRequests = JObject.Parse(workerAssignments); // Set WA counter wo.waPseudoIDCounter = parsedWorkerRequests["assignments"].Count; woServ.Save(neworder, userName); for (int i = 0; i < parsedWorkerRequests["assignments"].Count; i++) { WorkAssignment wa = new WorkAssignment(); // Create WA from Employer data wa.workOrderID = neworder.ID; wa.skillID = parsedWorkerRequests["assignments"][i].skillId; wa.hours = parsedWorkerRequests["assignments"][i].hours; wa.weightLifted = parsedWorkerRequests["assignments"][i].weight; wa.hourlyWage = parsedWorkerRequests["assignments"][i].hourlyWage; // TODO: consider looking this up instead - however, this is the value quoted to the customer online wa.pseudoID = i + 1; wa.description = parsedWorkerRequests["assignments"][i].desc; // Set up defaults wa.active = true; wa.englishLevelID = 0; // TODO: note- all incoming online work assignments won't have the proper English level set (this needs to be set by the worker center) wa.surcharge = 0.0; wa.days = 1; wa.qualityOfWork = 0; wa.followDirections = 0; wa.attitude = 0; wa.reliability = 0; wa.transportProgram = 0; WorkAssignment newWa = waServ.Create(wa, userName); } // TODO: test // New Worker Requests to add for (int i = 0; i < parsedWorkerRequests["requests"].Count; i++) { WorkerRequest wr = new WorkerRequest(); // Create Worker Request from Employer data wr.WorkOrderID = neworder.ID; wr.WorkerID = parsedWorkerRequests["requests"][i].workerId; WorkerRequest newWr = wrServ.Create(wr, userName); } } if (neworder.transportFee > 0) { return View("IndexPrePaypal", neworder); } else { return View("IndexComplete", neworder); } }
public ActionResult HirerProfile() { // Retrieve user ID of signed in Employer string userID = HttpContext.User.Identity.GetUserId(); // Retrieve Employer record Employer employer = eServ.GetRepo().GetAllQ().Where(e => e.onlineSigninID == userID).FirstOrDefault(); if (employer != null) { // Employer has created profile or work order already } else { employer = new Employer(); } // Set default values employer.active = true; employer.onlineSource = true; employer.returnCustomer = false; employer.receiveUpdates = true; employer.business = false; employer.email = HttpContext.User.Identity.Name; employer.onlineSigninID = userID; employer.isOnlineProfileComplete = true; return PartialView("Profile", employer); }
/// <summary> /// /// </summary> /// <param name="_emp"></param> /// <returns></returns> public bool employerCreate(Employer _emp) { string prefix = "employer0-"; _emp.name = RandomString(7); // go to person page WaitThenClickElement(By.Id("menulinkemployer")); // go to create person tab WaitThenClickElement(By.Id("employerCreateTab")); WaitForElement(By.Id(prefix + "name")); ReplaceElementText(By.Id(prefix + "name"), _emp.name); ReplaceElementText(By.Id(prefix + "address1"), _emp.address1); ReplaceElementText(By.Id(prefix + "address2"), _emp.address2); ReplaceElementText(By.Id(prefix + "city"), _emp.city); ReplaceElementText(By.Id(prefix + "state"), _emp.state); ReplaceElementText(By.Id(prefix + "zipcode"), _emp.zipcode); ReplaceElementText(By.Id(prefix + "phone"), _emp.phone); ReplaceElementText(By.Id(prefix + "cellphone"), _emp.cellphone); ReplaceElementText(By.Id(prefix + "driverslicense"), _emp.driverslicense); ReplaceElementText(By.Id(prefix + "licenseplate"), _emp.licenseplate); //ReplaceElementText(By.Id(prefix + "businessname"), _emp.businessname); // select lists //http://stackoverflow.com/questions/4672658/how-do-i-set-a-an-option-as-selected-using-selenium-webdriver-selenium-2-0-cli //ReplaceElementText(By.Id(prefix + "referredby"), _emp.referredby.ToString()); ReplaceElementText(By.Id(prefix + "email"), _emp.email); ReplaceElementText(By.Id(prefix + "notes"), _emp.notes); ReplaceElementText(By.Id(prefix + "referredbyOther"), _emp.referredbyOther); SelectOptionByIndex(By.Id(prefix + "active"), _emp.active ? 2 : 1); SelectOptionByIndex(By.Id(prefix + "blogparticipate"), _emp.blogparticipate ? 2 : 1); SelectOptionByIndex(By.Id(prefix + "business"), _emp.business ? 2 : 1); SelectOption(By.Id(prefix + "referredby"), MacheteLookup.cache.First(c => c.category == "emplrreference" && c.ID == _emp.referredby).text_EN); _d.FindElement(By.Id(prefix + "SaveBtn")).Click(); // // look for new open tab with class: .employer.ui-tabs-selected var selectedTab = WaitForElement(By.CssSelector("li.employer.ui-tabs-selected")); Assert.IsNotNull(selectedTab, "Failed to find Employer selected tab element"); IWebElement tabAnchor = selectedTab.FindElement(By.CssSelector("a")); Assert.IsNotNull(tabAnchor, "Failed to find Employer selected tab element anchor"); Assert.IsTrue(tabAnchor.Text == _emp.name, "Employer anchor label doesn't match employer name"); _emp.ID = Convert.ToInt32(tabAnchor.GetAttribute("recordid")); return true; }