Пример #1
0
        protected string checkForm(systemEntityViewModel viewModel)
        {
            string ret = "";

            if (string.IsNullOrWhiteSpace(viewModel.editModel.entityName))
            {
                ret = "entity name cannot be empty";
            }
            else if (viewModel.editModel.systemId == Guid.Empty ||
                     string.IsNullOrWhiteSpace(viewModel.editModel.systemId.ToString()))
            {
                ret = "systemId cannot be invalid";
            }
            return(ret);
        }
Пример #2
0
        // GET: SASDPM/SystemEntity
        public ActionResult Index(string parentEntityIdS)
        {
            systemEntityViewModel viewModel;
            var systemEntityModel = TempData[modelName];

            if (systemEntityModel == null)
            {
                viewModel = new systemEntityViewModel();
            }
            else
            {
                viewModel = (systemEntityViewModel)systemEntityModel;
            }
            var systemId = Session["systemId"];

            if (systemId != null)
            {
                viewModel.editModel.systemId = new Guid(systemId.ToString());
                ViewBag.systemName           = Session["systemName"] + "";
                ViewBag.systemLock           = true;
            }
            else
            {
                return(RedirectToAction("Systems", "SD"));
            }
            if (!string.IsNullOrWhiteSpace(parentEntityIdS))
            {
                viewModel.editModel.parentEntityId = new Guid(parentEntityIdS);
            }
            ViewBag.pageStatus = TempData[PageStatus];
            if (ViewBag.pageStatus == null)
            {
                ViewBag.pageStatus = (int)PAGE_STATUS.QUERY;
            }
            ViewBag.systemTemplateList = SDdropdownOptions.systemTemplateList();
            ViewBag.systemEntityList   = SDdropdownOptions.systemEntityList();
            ViewBag.systemList         = SDdropdownOptions.systemList();
            TempData[modelName]        = viewModel;
            TempData[PageStatus]       = ViewBag.pageStatus;
            return(View(viewModel));
        }
Пример #3
0
        protected string query(ref systemEntityViewModel viewModel)
        {
            string       ret      = "";
            systemEntity tmpModel = viewModel.editModel;
            tblSystem    ts       = new tblSystem(uow.GetDbContext());
            var          qry      = (from a in uow.systemEntityRepository.GetAll()
                                     join b in uow.systemTemplateRepository.GetAll()
                                     on a.systemTemplateId equals b.systemTemplateId
                                     into c
                                     from d in c.DefaultIfEmpty()
                                     join e in uow.systemEntityRepository.GetAll()
                                     on a.parentEntityId equals e.systemEntityId
                                     into f
                                     from g in f.DefaultIfEmpty()
                                     join h in ts.getAll()
                                     on a.systemId equals h.systemId into i
                                     from j in i.DefaultIfEmpty()
                                     select new systemEntityDisp
            {
                systemEntityId = a.systemEntityId,
                createtime = a.createtime,
                entityName = a.entityName,
                entityDescription = a.entityDescription,
                systemTemplateId = a.systemTemplateId,
                templateName = d.templateName,
                parentEntityId = a.parentEntityId,
                parentEntityName = g.entityName,
                systemId = a.systemId,
                systemName = j.systemName
            }).AsQueryable();

            if (!string.IsNullOrWhiteSpace(tmpModel.entityName))
            {
                qry = qry.Where(x => x.entityName.Contains(tmpModel.entityName));
            }
            if (!string.IsNullOrWhiteSpace(tmpModel.entityDescription))
            {
                qry = qry.Where(x => x.entityDescription.Contains(
                                    tmpModel.entityDescription));
            }
            if (tmpModel.systemTemplateId != null &&
                tmpModel.systemTemplateId != Guid.Empty)
            {
                qry = qry.Where(x => x.systemTemplateId == tmpModel.systemTemplateId);
            }
            if (tmpModel.parentEntityId != null &&
                tmpModel.parentEntityId != Guid.Empty)
            {
                qry = qry.Where(x => x.parentEntityId == tmpModel.parentEntityId);
            }
            if (tmpModel.systemId != Guid.Empty &&
                !string.IsNullOrWhiteSpace(tmpModel.systemId.ToString()))
            {
                qry = qry.Where(x => x.systemId == tmpModel.systemId);
            }
            if (qry.Any())
            {
                viewModel.queryResult = qry.ToList();
            }
            else
            {
                viewModel.queryResult = null;
            }
            return(ret);
        }
Пример #4
0
        public ActionResult Index(systemEntityViewModel viewModel)
        {
            ActionResult ar;
            var          systemId = Session["systemId"];

            if (systemId != null)
            {
                viewModel.editModel.systemId = new Guid(systemId.ToString());
                ViewBag.systemName           = Session["systemName"] + "";
                ViewBag.systemLock           = true;
            }
            else
            {
                return(RedirectToAction("Systems", "SD"));
            }
            var multiSelect = Request.Form[MultiSelect];
            systemEntityViewModel tmpVM;

            viewModel.clearMsg();
            ViewBag.pageStatus = TempData[PageStatus];
            if (ViewBag.pageStatus == null)
            {
                ViewBag.pageStatus = (int)PAGE_STATUS.QUERY;
            }
            ViewBag.systemTemplateList = SDdropdownOptions.systemTemplateList();
            ViewBag.systemEntityList   = SDdropdownOptions.systemEntityList();
            ViewBag.systemList         = SDdropdownOptions.systemList();
            systemEntity se;

            switch (viewModel.cmd)
            {
            case "query":
                if (ViewBag.pageStatus <= (int)PAGE_STATUS.QUERY)
                {
                    viewModel.errorMsg = query(ref viewModel);
                    ar = View(viewModel);
                }
                else
                {
                    ViewBag.pageStatus   = (int)PAGE_STATUS.QUERY;
                    TempData[modelName]  = null;
                    TempData[PageStatus] = ViewBag.pageStatus;
                    ar = RedirectToAction("Index");
                    return(ar);
                }
                //undone !!... (2) tree recursion not done yet
                break;

            case "add":
            case "addNew":
                viewModel.editModel  = new systemEntityDisp();
                ViewBag.pageStatus   = (int)PAGE_STATUS.ADD;
                TempData[modelName]  = null;
                TempData[PageStatus] = ViewBag.pageStatus;
                ar = RedirectToAction("Index");
                return(ar);

            case "update":
                se = (from a in uow.systemEntityRepository.GetAll()
                      where a.systemEntityId
                      == new Guid(viewModel.singleSelect)
                      select a).FirstOrDefault();
                if (se != null)
                {
                    tmpVM           = new systemEntityViewModel();
                    tmpVM.editModel = jsonUtl.decodeJson <systemEntityDisp>(
                        jsonUtl.encodeJson(se));
                    //se = reflectionUtl.assign<systemEntity,
                    //    systemEntity>(se, viewModel.editModel);
                    //tmpVM.editModel = se;
                    TempData[PageStatus] = (int)PAGE_STATUS.EDIT;
                    TempData[modelName]  = tmpVM;
                    ar = RedirectToAction("Index");
                    return(ar);
                }
                viewModel.errorMsg = $"error reading this {modelMessage}";
                ar = View(viewModel);
                break;

            case "delete":
                if (string.IsNullOrWhiteSpace(multiSelect))
                {
                    viewModel.errorMsg = $"please select {modelMessage} to delete";
                }
                else
                {
                    string[] selected = multiSelect.Split(',');
                    foreach (string systemEntityId in selected.ToList())
                    {
                        se = (from a in uow.systemEntityRepository.GetAll()
                              where a.systemEntityId.ToString() == systemEntityId
                              select a).FirstOrDefault();
                        if (se == null)
                        {
                            continue;
                        }
                        uow.systemEntityRepository.Delete(se);
                    }
                    viewModel.errorMsg = uow.SaveChanges();
                    if (string.IsNullOrWhiteSpace(viewModel.errorMsg))
                    {
                        viewModel.successMsg = "successfully deleted";
                        viewModel.errorMsg   = query(ref viewModel);
                    }
                }
                ar = View(viewModel);
                break;

            case "save":
                string err = checkForm(viewModel);
                if (err.Length > 0)
                {
                    viewModel.errorMsg = err;
                    ar = View(viewModel);
                    break;
                }
                if (ViewBag.pageStatus == (int)PAGE_STATUS.ADD)
                {
                    viewModel.editModel.systemEntityId = Guid.NewGuid();
                    viewModel.editModel.createtime     = DateTime.Now;
                    systemEntity toAdd = new systemEntity();
                    //toAdd = reflectionUtl.assign<systemEntity, systemEntity>
                    //    (toAdd, viewModel.editModel as systemEntity);
                    toAdd = jsonUtl.decodeJson <systemEntity>(
                        jsonUtl.encodeJson(viewModel.editModel));
                    uow.systemEntityRepository.Insert(toAdd);    // viewModel.editModel);
                    viewModel.errorMsg = uow.SaveChanges();
                    if (string.IsNullOrWhiteSpace(viewModel.errorMsg))
                    {
                        viewModel.successMsg = $"new {modelMessage} saved";
                        ViewBag.pageStatus   = (int)PAGE_STATUS.ADDSAVED;
                    }
                }
                else if (ViewBag.pageStatus == (int)PAGE_STATUS.EDIT)
                {
                    var qry = (from a in uow.systemEntityRepository.GetAll()
                               where a.systemEntityId
                               == viewModel.editModel.systemEntityId
                               select a).SingleOrDefault();
                    if (qry != null)
                    {
                        qry = reflectionUtl.assign <systemEntity,
                                                    systemEntity>(qry, viewModel.editModel);
                        //qry = jsonUtl.decodeJson<systemEntity>
                        //    (jsonUtl.encodeJson(viewModel.editModel));
                        uow.GetDbContext().Entry(qry).State
                            = EntityState.Modified;
                        viewModel.errorMsg = uow.SaveChanges();
                        if (string.IsNullOrWhiteSpace(viewModel.errorMsg))
                        {
                            viewModel.successMsg = $"{modelMessage} updated";
                            ViewBag.pageStatus   = (int)PAGE_STATUS.SAVED;
                        }
                    }
                    else
                    {
                        viewModel.errorMsg = $"{modelMessage} not found";
                    }
                }
                else
                {
                    viewModel.errorMsg = $"wrong page status " +
                                         $"{ViewBag.pageStatus}";
                }
                ar = View(viewModel);
                break;

            default:
                viewModel.errorMsg = $"unhandled command {viewModel.cmd}";
                ar = View(viewModel);
                break;
            }
            TempData[modelName]  = viewModel;
            TempData[PageStatus] = ViewBag.pageStatus;
            return(ar);
        }