public void validateNoPreviousPayment(Domain.WorkOrder wo, PaypalPayment pp)
        {
            if (wo.ppPayerID != null && wo.ppPayerID != pp.payerID)
            {
                var res = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content      = new StringContent(string.Format("PaypalID already set to {0}, conflicts with {1}", pp.payerID, wo.ppPayerID)),
                    ReasonPhrase = "PaypalID already set to a different ID"
                };
                throw new Exception(res.ToString());
            }
            if (wo.ppPaymentID != null && wo.ppPaymentID != pp.paymentID)
            {
                var res = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content      = new StringContent(string.Format("PaymentID already set to {0}, conflicts with {1}", pp.paymentID, wo.ppPaymentID)),
                    ReasonPhrase = "PaymentID already set to a different ID"
                };
                throw new Exception(res.ToString());
            }

            if (wo.ppPaymentToken != null && wo.ppPaymentToken != pp.paymentToken)
            {
                var res = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content      = new StringContent(string.Format("PaymentToken already set to {0}, conflicts with {1}", pp.paymentToken, wo.ppPaymentToken)),
                    ReasonPhrase = "PaymentToken already set to a different ID"
                };
                throw new Exception(res.ToString());
            }
        }
        public async Task create_valid_post_returns_json()
        {
            //Arrange
            var vmwo = new ViewModel.WorkAssignment();

            Domain.WorkAssignment asmt = new Domain.WorkAssignment();
            asmt.ID       = 4242;
            asmt.pseudoID = 01;

            Domain.WorkOrder _wo = new Domain.WorkOrder();
            _wo.paperOrderNum = _fakeId;
            _wo.ID            = 123;
            int _num = 0;

            string username = "******";

            _woServ.Setup(p => p.Get(_num)).Returns(() => _wo);
            _waServ.Setup(p => p.Create(asmt, username)).Returns(() => asmt);

            //Act
            var result = await _controller.Create(asmt, username) as JsonResult;

            //Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(JsonResult));
            Assert.AreEqual("{ sNewRef = /WorkAssignment/Edit/4242, sNewLabel = Assignment #: 12345-01, iNewID = 4242 }",
                            result.Value.ToString());
        }
Beispiel #3
0
        public ActionResult Edit(int id, FormCollection collection, string userName, List <WorkerRequest> workerRequestList)
        {
            Domain.WorkOrder workOrder = woServ.Get(id);
            UpdateModel(workOrder);

            // Stale requests to remove
            foreach (var rem in workOrder.workerRequests.Except <WorkerRequest>(workerRequestList, new WorkerRequestComparer()).ToArray())
            {
                var request = wrServ.GetByWorkerID(workOrder.ID, rem.WorkerID);
                wrServ.Delete(request.ID, userName);
                workOrder.workerRequests.Remove(rem);
            }

            // New requests to add
            foreach (var add in workerRequestList.Except <WorkerRequest>(workOrder.workerRequests, new WorkerRequestComparer()))
            {
                add.workOrder       = workOrder;
                add.workerRequested = wServ.Get(add.WorkerID);
                add.updatedByUser(userName);
                add.createdByUser(userName);
                workOrder.workerRequests.Add(add);
            }

            woServ.Save(workOrder, userName);
            return(Json(new
            {
                status = "OK",
                editedID = id
            },
                        JsonRequestBehavior.AllowGet));
        }
Beispiel #4
0
        public ActionResult Create(Domain.WorkOrder wo, string userName, List <WorkerRequest> workerRequestList)
        {
            UpdateModel(wo);
            Domain.WorkOrder neworder = woServ.Create(wo, userName);

            // New Worker Requests to add
            foreach (var workerRequest in workerRequestList)
            {
                workerRequest.workOrder       = neworder;
                workerRequest.workerRequested = wServ.Get(workerRequest.WorkerID);
                workerRequest.updatedByUser(userName);
                workerRequest.createdByUser(userName);
                neworder.workerRequests.Add(workerRequest);
            }

            woServ.Save(neworder, userName);

            // JSON object with new work order data
            var result = map.Map <Domain.WorkOrder, ViewModel.WorkOrder>(neworder);

            return(Json(new
            {
                sNewRef = result.tabref,
                sNewLabel = result.tablabel,
                iNewID = result.ID
            },
                        JsonRequestBehavior.AllowGet));
        }
Beispiel #5
0
        public void create_valid_post_returns_json()
        {
            //Arrange
            var vmwo = new Machete.Web.ViewModel.WorkAssignment();

            map.Setup(x => x.Map <Domain.WorkAssignment, Machete.Web.ViewModel.WorkAssignment>(It.IsAny <Domain.WorkAssignment>()))
            .Returns(vmwo);
            Domain.WorkAssignment _asmt = new Domain.WorkAssignment();
            fakeform.Add("ID", "11");
            fakeform.Add("englishlevelID", "0");
            fakeform.Add("skillID", "60");
            fakeform.Add("hours", "5");
            fakeform.Add("hourlyWage", "12");
            fakeform.Add("days", "1");
            Domain.WorkOrder _wo = new Domain.WorkOrder();
            _wo.paperOrderNum = 12345;
            _wo.ID            = 123;
            int _num = 0;

            string username = "******";

            woServ.Setup(p => p.Get(_num)).Returns(() => _wo);
            waServ.Setup(p => p.Create(_asmt, username)).Returns(() => _asmt);

            _ctrlr.ValueProvider = fakeform.ToValueProvider();
            //Act
            JsonResult result = (JsonResult)_ctrlr.Create(_asmt, username);

            //Assert
            Assert.IsInstanceOfType(result, typeof(JsonResult));
            //Assert.AreEqual("{ sNewRef = /WorkAssignment/Edit/12345, sNewLabel = Assignment #: 12345-01, iNewID = 12345 }",
            //                result.Data.ToString());
        }
Beispiel #6
0
        public IHttpActionResult PaypalExecute(int orderID, [FromBody] PaypalPayment data)
        {
            validatePaypalData(data);
            Domain.WorkOrder order = null;

            order = serv.Get(orderID);
            if (order.EmployerID != employer.ID)
            {
                throwInvalidOrder(orderID);
            }

            validateNoPreviousPayment(order, data);

            if (order.ppState == null)
            {
                order.ppPayerID      = data.payerID;
                order.ppPaymentID    = data.paymentID;
                order.ppPaymentToken = data.paymentToken;
                order.ppState        = "created";
                woServ.Save(order, userEmail);
            }

            var result  = postExecute(data);
            var payment = JsonConvert.DeserializeObject <PayPal.Api.Payment>(result);

            order.ppResponse = result;
            order.ppState    = payment.state;
            order.ppFee      = Double.Parse(payment.transactions.Single().amount.total);
            woServ.Save(order, userEmail);
            return(Json(payment));
        }
Beispiel #7
0
        public IHttpActionResult Post([FromBody] ViewModel.WorkOrder order)
        {
            var domain = map.Map <ViewModel.WorkOrder, Domain.WorkOrder>(order);

            domain.EmployerID   = employer.ID;
            domain.onlineSource = true;
            Domain.WorkOrder newOrder = null;
            try {
                newOrder = serv.Create(domain, employer.email ?? employer.name);
            }
            catch (MacheteValidationException e)
            {
                var res = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content      = new StringContent(e.ErrorMessage),
                    ReasonPhrase = "Validation failed on workorder"
                };
                throw new HttpResponseException(res);
            } catch (InvalidOperationException e)
            {
                var res = new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content      = new StringContent(e.Message),
                    ReasonPhrase = "Invalid operation "
                };
                throw new HttpResponseException(res);
            }
            var result = map.Map <Domain.WorkOrder, ViewModel.WorkOrder>(newOrder);

            return(Json(new { data = result }));
        }
Beispiel #8
0
        public ActionResult View(int id)
        {
            Domain.WorkOrder workOrder = woServ.Get(id);
            var m = map.Map <Domain.WorkOrder, ViewModel.WorkOrder>(workOrder);

            m.def = def;
            return(View(m));
        }
Beispiel #9
0
        public ActionResult ViewForEmail(int id)
        {
            Domain.WorkOrder workOrder = woServ.Get(id);
            var m = map.Map <Domain.WorkOrder, ViewModel.WorkOrder>(workOrder);

            m.def = def;
            ViewBag.OrganizationName = def.getConfig("OrganizationName");
            return(PartialView(m));
        }
Beispiel #10
0
        public ActionResult Edit(int id, string userName, List <Domain.WorkerRequest> workerRequestList)
        {
            Domain.WorkOrder workOrder = woServ.Get(id);
            UpdateModel(workOrder);

            woServ.Save(workOrder, workerRequestList, userName);
            return(Json(new
            {
                status = "OK",
                editedID = id
            },
                        JsonRequestBehavior.AllowGet));
        }
Beispiel #11
0
        public ActionResult Create(Domain.WorkOrder wo, string userName, List <Domain.WorkerRequest> workerRequestList)
        {
            UpdateModel(wo);
            Domain.WorkOrder neworder = woServ.Create(wo, userName);

            // JSON object with new work order data
            var result = map.Map <Domain.WorkOrder, ViewModel.WorkOrder>(neworder);

            return(Json(new
            {
                sNewRef = result.tabref,
                sNewLabel = result.tablabel,
                iNewID = result.ID
            },
                        JsonRequestBehavior.AllowGet));
        }
Beispiel #12
0
        public ActionResult Edit(int id)
        {
            // Retrieve Work Order
            Domain.WorkOrder workOrder = woServ.Get(id);

            // Retrieve Worker Requests associated with Work Order
            ViewBag.workerRequests = workOrder.workerRequests.Select(a =>
                                                                     new SelectListItem
            {
                Value = a.WorkerID.ToString(),
                Text  = a.workerRequested.dwccardnum.ToString() + ' ' +
                        a.workerRequested.Person.firstname1 + ' ' +
                        a.workerRequested.Person.lastname1
            });
            var m = map.Map <Domain.WorkOrder, ViewModel.WorkOrder>(workOrder);

            m.def = def;
            return(PartialView("Edit", m));
        }
        public ActionResult Get(int orderID)
        {
            Domain.WorkOrder order = null;
            try
            {
                order = serv.Get(orderID);
                if (order.EmployerID != Employer.ID)
                {
                    throwInvalidOrder(orderID);
                }
            }
            catch
            {
                throwInvalidOrder(orderID);
            }

            // TODO: Not mapping to view object throws JsonSerializationException, good to test error
            // handling with...(delay in error)
            ViewModel.Api.WorkOrder result = map.Map <Domain.WorkOrder, ViewModel.Api.WorkOrder>(order);
            return(new JsonResult(new { data = result }));
        }