public virtual ActionResult Edit(int autoApprovalId, string docTypeCode)
        {
            AutoApproval         autoApproval  = new AutoApproval();
            IList <AutoApproval> autoApprovals = new List <AutoApproval>();

            if (autoApprovalId > 0)
            {
                autoApproval = this._autoApprovalService.GetAutoApproval(autoApprovalId);
            }
            else
            {
                autoApprovals = this._autoApprovalService.GetAutoApprovals(docTypeCode);
            }

            var docTypes    = _docTypeService.GetDocTypes();
            var subDocTypes = this._subDocTypeService.GetSubDocTypes();
            var manCos      = _manCoService.GetManCos();

            var model = new EditAutoApprovalViewModel();

            if (autoApprovalId > 0)
            {
                model.ManCoId      = autoApproval.ManCoId;
                model.DocTypeId    = autoApproval.DocTypeId;
                model.SubDocTypeId = autoApproval.SubDocTypeId;
            }
            else
            {
                model.ManCoId      = autoApprovals.First().ManCoId;
                model.DocTypeId    = autoApprovals.First().DocTypeId;
                model.SubDocTypeId = -1;
            }

            model.DocTypeCode = docTypeCode;
            model.AddManCos(manCos);
            model.AddDocTypes(docTypes);
            model.AddSubDocTypes(subDocTypes);

            model.SubDocTypes = model.SubDocTypes.FindAll(x => x.DocTypeViewModel.Id == model.DocTypeId);

            model.SubDocTypes.Insert(0, new SubDocTypeViewModel()
            {
                Code = "All",
                Id   = -1
            });

            return(this.View(model));
        }