public ActionResult SaveAsDraft(WorkFlowFormViewModel formData)
        {
            if (ModelState.IsValid)
            {
                if (formData.ProcessFormViewCompleted && formData.GetType() != typeof(WorkFlowFormViewModel))
                {
                    _workFlowProcessService.CustomFormSave(formData);
                }
                else
                {
                    WorkFlowTrace torSatinAlmaIslem = Mapper.Map <WorkFlowFormViewModel, WorkFlowTrace>(formData);
                    _workFlowProcessService.AddOrUpdate(torSatinAlmaIslem);
                }

                UserProcessViewModel kullaniciIslemVM = _workFlowProcessService.GetUserProcessVM(formData.Id);
                var workFlowBase = _workFlowProcessService.WorkFlowBaseInfo(kullaniciIslemVM);
                _workFlowProcessService.SetWorkFlowTraceForm(formData, workFlowBase);


                return(View(formData.ProcessTaskSpecialFormTemplateView, formData).WithMessage(this, string.Format("{0} saved successfully.", formData.ProcessName), MessageType.Success));
            }
            else
            {
                UserProcessViewModel kullaniciIslemVM = _workFlowProcessService.GetUserProcessVM(formData.Id);
                var workFlowBase = _workFlowProcessService.WorkFlowBaseInfo(kullaniciIslemVM);
                _workFlowProcessService.SetWorkFlowTraceForm(formData, workFlowBase);

                return(View(formData.ProcessTaskSpecialFormTemplateView, formData).WithMessage(this, string.Format("Validation error!"), MessageType.Danger));
            }
        }
        public ActionResult SaveAndSend(WorkFlowFormViewModel formData)
        {
            if (ModelState.IsValid)
            {
                bool fullFormValidate = _workFlowProcessService.FullFormValidate(formData, ModelState);

                if (!fullFormValidate)
                {
                    UserProcessViewModel userProcessVM = _workFlowProcessService.GetUserProcessVM(formData.Id);
                    var workFlowBase = _workFlowProcessService.WorkFlowBaseInfo(userProcessVM);
                    _workFlowProcessService.SetWorkFlowTraceForm(formData, workFlowBase);

                    return(View(formData.ProcessTaskSpecialFormTemplateView, formData).WithMessage(this, "Validation error!", MessageType.Warning));
                }

                WorkFlowTrace workFlowTrace = Mapper.Map <WorkFlowFormViewModel, WorkFlowTrace>(formData);

                if (formData.ProcessFormViewCompleted)
                {
                    if (formData.GetType() != typeof(WorkFlowFormViewModel))
                    {
                        _workFlowProcessService.CustomFormSave(formData);
                    }
                    else
                    {
                        _workFlowProcessService.AddOrUpdate(workFlowTrace);
                    }
                }
                else
                {
                    _workFlowProcessService.AddOrUpdate(workFlowTrace);
                }


                _workFlowProcessService.GoToWorkFlowNextProcess(workFlowTrace.OwnerId);
                var targetProcess = _workFlowProcessService.SetNextProcessForWorkFlow(workFlowTrace.Id);

                return(RedirectToAction("Index", targetProcess).WithMessage(this, "Saved Successfully.", MessageType.Success));
            }
            else
            {
                UserProcessViewModel userProcessVM = _workFlowProcessService.GetUserProcessVM(formData.Id);
                var workFlowBase = _workFlowProcessService.WorkFlowBaseInfo(userProcessVM);
                _workFlowProcessService.SetWorkFlowTraceForm(formData, workFlowBase);

                return(View(formData.ProcessTaskSpecialFormTemplateView, formData).WithMessage(this, string.Format("Validation error!"), MessageType.Danger));
            }
        }