private void btnUpdate_Click(object sender, EventArgs e)
        {
            if (myScreen == null)
            {
                MessageBox.Show("You must load a screen first!");
                return;
            }

            myScreen.errorMessage = "";
            try
            {
                var validateScreen = myRoutingService.editScreen("VALIDATEONLY", myScreen);
                if (validateScreen.errorMessage != "")
                {
                    MessageBox.Show("Error: " + validateScreen.errorMessage);
                    return;
                }
            }
            catch { }

            MessageBox.Show(ctStandardLib.ctHelper.serializeObject(myScreen).Replace("><", ">" + Environment.NewLine + "<"));

            var tmpScreen = myRoutingService.editScreen("UPDATE", myScreen);

            if (tmpScreen.errorMessage != "")
            {
                MessageBox.Show("Error: " + tmpScreen.errorMessage);
            }
            else
            {
                myScreen = tmpScreen;
                gvRtgSteps.DataSource = myScreen.myRtgSteps;
                MessageBox.Show("Save complete!");
            }
        }
        private void btnLoad_Click(object sender, EventArgs e)
        {
            myScreen = myRoutingService.getScreen(tbKitID.Text, tbSiteID.Text, tbStatus.Text);
            if (myScreen.errorMessage != "")
            {
                MessageBox.Show("Error: " + myScreen.errorMessage);
                return;
            }
            try
            {
                tbKitID.Text  = myScreen.myRouting.KitID.TrimEnd();
                tbSiteID.Text = myScreen.myRouting.SiteID.TrimEnd();
                tbStatus.Text = myScreen.myRouting.Status.TrimEnd();
            }
            catch { }

            gvRtgSteps.DataSource = myScreen.myRtgSteps;
            btnUpdate.Enabled     = true;
            tbScreen.Text         = ctStandardLib.ctHelper.serializeObject(myScreen).Replace("><", ">" + Environment.NewLine + "<");
        }
        private void btnNew_Click(object sender, EventArgs e)
        {
            myScreen = myRoutingService.getNewscreen(null);
            myScreen.myRouting.KitID  = tbKitID.Text.TrimEnd();
            myScreen.myRouting.SiteID = tbSiteID.Text.TrimEnd();
            myScreen.myRouting.Status = tbStatus.Text.TrimEnd();
            myScreen.myRouting.Descr  = "TEST route: " + myScreen.myRouting.KitID;

            try
            {
                var myNote = new ctDynamicsSL.inventory.billOfMaterial.maintenance.routingMaintenance.Snote();
                myNote.sNoteText   = "My test route note";
                myScreen.routeNote = myNote;
            }
            catch { }

            System.Int16 lineNbr   = -32768;
            var          lRtgSteps = new System.Collections.Generic.List <ctDynamicsSL.inventory.billOfMaterial.maintenance.routingMaintenance.RtgStep>();

            {
                var tmpRtgStep = new ctDynamicsSL.inventory.billOfMaterial.maintenance.routingMaintenance.RtgStep();
                tmpRtgStep.KitID        = myScreen.myRouting.KitID;
                tmpRtgStep.SiteID       = myScreen.myRouting.SiteID;
                tmpRtgStep.OperationID  = myRoutingService.getOperationsByID("")[0].OperationID;   //required, picking first for example purposes
                tmpRtgStep.LaborClassID = myRoutingService.getLaborClassesByID("")[0].LbrClassID;  //required, picking first for example purposes
                tmpRtgStep.WorkCenterID = myRoutingService.getWorkCentersByID("")[0].WorkCenterID; //required, picking first for example purposes

                //get defaults based on above settings
                tmpRtgStep = myRoutingService.getNewRtgStep(tmpRtgStep);

                tmpRtgStep.LineNbr = lineNbr;
                lRtgSteps.Add(tmpRtgStep);
            }

            {
                ctDynamicsSL.inventory.billOfMaterial.maintenance.routingMaintenance.RtgStep tmpRtgStep = myRoutingService.getNewRtgStep(null);
                tmpRtgStep.KitID        = myScreen.myRouting.KitID;
                tmpRtgStep.OperationID  = myRoutingService.getOperationsByID("")[0].OperationID;   //required, pick first for example purposes
                tmpRtgStep.LaborClassID = myRoutingService.getLaborClassesByID("")[0].LbrClassID;  //required, picking first for example purposes
                tmpRtgStep.WorkCenterID = myRoutingService.getWorkCentersByID("")[0].WorkCenterID; //required, picking first for example purposes

                //get defaults based on above settings
                tmpRtgStep = myRoutingService.getNewRtgStep(tmpRtgStep);

                tmpRtgStep.LineNbr = System.Convert.ToInt16(lRtgSteps.Max(x => x.LineNbr) + 1);
                lRtgSteps.Add(tmpRtgStep);
            }

            {
                ctDynamicsSL.inventory.billOfMaterial.maintenance.routingMaintenance.RtgStep tmpRtgStep = myRoutingService.getNewRtgStep(null);
                tmpRtgStep.KitID        = myScreen.myRouting.KitID;
                tmpRtgStep.OperationID  = myRoutingService.getOperationsByID("")[0].OperationID;   //required, pick first for example purposes
                tmpRtgStep.LaborClassID = myRoutingService.getLaborClassesByID("")[0].LbrClassID;  //required, picking first for example purposes
                tmpRtgStep.WorkCenterID = myRoutingService.getWorkCentersByID("")[0].WorkCenterID; //required, picking first for example purposes

                //get defaults based on above settings
                tmpRtgStep = myRoutingService.getNewRtgStep(tmpRtgStep);

                tmpRtgStep.LineNbr = System.Convert.ToInt16(lRtgSteps.Max(x => x.LineNbr) + 1);
                lRtgSteps.Add(tmpRtgStep);
            }

            myScreen.myRtgSteps = lRtgSteps.ToArray();

            myScreen.errorMessage = "";
            try
            {
                var validate = myRoutingService.editScreen("VALIDATEONLY", myScreen);
                if (!String.IsNullOrWhiteSpace(validate.errorMessage))
                {
                    MessageBox.Show("Error: " + validate.errorMessage);
                    return;
                }
            }
            catch { }

            myScreen = myRoutingService.editScreen("ADD", myScreen);
            if (!String.IsNullOrWhiteSpace(myScreen.errorMessage))
            {
                btnUpdate.Enabled = false;
                tbKitID.Text      = "";
                tbScreen.Text     = ctStandardLib.ctHelper.serializeObject(myScreen).Replace("><", ">" + Environment.NewLine + "<");
                MessageBox.Show("Error: " + myScreen.errorMessage);
                return;
            }
            else
            {
                tbKitID.Text          = myScreen.myRouting.KitID;
                gvRtgSteps.DataSource = myScreen.myRtgSteps;
                btnLoad.PerformClick();
            }
        }