Inheritance: Record
Beispiel #1
0
        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");
 }
Beispiel #11
0
        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));
 }
Beispiel #14
0
        /// <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;
        }
Beispiel #15
0
 /// <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;
 }
Beispiel #16
0
        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;
        }
Beispiel #17
0
        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;
        }
Beispiel #18
0
        /// <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);
        }
Beispiel #24
0
        /// <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;
        }