Exemple #1
0
        public ActionResult Edit(Project project)
        {
            string errorMsg = "";
            //初始化客户经理下拉列表
            List <SelectListItem> projectList = new List <SelectListItem>();
            //根据用户身份做判断
            List <Manager> mList = new List <Manager>();

            mList = db.Managers.Where(p => p.ActiveFlag != "N" && p.ManagerType == "C").ToList();

            foreach (var item in mList)
            {
                SelectListItem listItem = new SelectListItem();
                listItem.Text  = item.ManagerName;
                listItem.Value = item.id.ToString();
                projectList.Add(listItem);
            }
            ViewData["CostManagerList"] = projectList;


            //初始化项目经理下拉列表
            List <SelectListItem> managerList = new List <SelectListItem>();
            //managerList.Add(new SelectListItem() { Text = "全部", Value = "A" });
            //根据登陆用户身份判断
            List <Manager> maList = new List <Manager>();

            if (UserLogin.userroles.Contains("M"))
            {
                int userid = Convert.ToInt32(UserLogin.userid);
                var user   = db.Users.Where(x => x.id == userid).FirstOrDefault();
                var pros   = from Manager in db.Managers
                             where Manager.id == user.PersonId
                             select Manager;
                maList = pros.Where(p => p.ActiveFlag != "N").ToList();
            }
            else
            {
                maList = db.Managers.Where(p => p.ActiveFlag != "N" && p.ManagerType == "M").ToList();
            }

            foreach (var item in maList)
            {
                SelectListItem listItem = new SelectListItem();
                listItem.Text  = item.ManagerName;
                listItem.Value = item.id.ToString();
                managerList.Add(listItem);
            }
            ViewData["ManagerList"] = managerList;

            //初始化项目状态下拉列表
            List <SelectListItem> projStatusList = new List <SelectListItem>();

            //projStatusList.Add(new SelectListItem() { Text = "全部", Value = "A" });
            foreach (var item in db.Dictionaries.Where(d => d.TYPE == "PROJECTSTATUS"))
            {
                SelectListItem listItem = new SelectListItem();
                listItem.Text  = item.VALUE;
                listItem.Value = item.CODE;
                projStatusList.Add(listItem);
            }
            ViewData["ProjStatusList"] = projStatusList;

            try
            {
                if (ModelState.IsValid)
                {
                    //Cancel validation before save
                    db.Configuration.ValidateOnSaveEnabled = false;
                    var entry = db.Entry(project);
                    entry.State = EntityState.Modified;

                    entry.Property(e => e.CreationDate).IsModified = false;
                    entry.Property(e => e.CreatedBy).IsModified    = false;
                    entry.Property(e => e.Attribute1).IsModified   = false;
                    entry.Property(e => e.Attribute2).IsModified   = false;
                    entry.Property(e => e.Attribute3).IsModified   = false;
                    entry.Property(e => e.Attribute4).IsModified   = false;
                    entry.Property(e => e.Attribute5).IsModified   = false;
                    entry.Property(e => e.Attribute6).IsModified   = false;
                    entry.Property(e => e.Attribute7).IsModified   = false;
                    entry.Property(e => e.Attribute8).IsModified   = false;
                    entry.Property(e => e.Attribute9).IsModified   = false;
                    entry.Property(e => e.Attribute10).IsModified  = false;

                    project.LastUpdateDate = DateTime.Now;
                    project.LastUpdatedBy  = Convert.ToInt32(UserLogin.userid);//Need to change to use actual login userid

                    //Validate Projects before commit to Database
                    ProjectsBO projectBO = new ProjectsBO();
                    errorMsg = projectBO.ValidateProject(project);
                    if (!String.IsNullOrEmpty(errorMsg))
                    {
                        ViewBag.ErrorMsg = errorMsg;
                        return(View(project));
                    }
                    db.SaveChanges();

                    db.Configuration.ValidateOnSaveEnabled = true;

                    return(RedirectToAction("Index", new { projectId = project.id }));
                }
            }
            catch (Exception ex)
            {
                ViewBag.ErrorMsg = ex.Message;
                return(View(project));
            }
            return(View(project));
        }
Exemple #2
0
        public ActionResult Create(Project project)
        {
            //初始化客户经理下拉列表
            List <SelectListItem> projectList = new List <SelectListItem>();
            //根据用户身份做判断
            List <Manager> mList = new List <Manager>();

            mList = db.Managers.Where(p => p.ActiveFlag != "N" && p.ManagerType == "C").ToList();

            foreach (var item in mList)
            {
                SelectListItem listItem = new SelectListItem();
                listItem.Text  = item.ManagerName;
                listItem.Value = item.id.ToString();
                projectList.Add(listItem);
            }
            ViewData["CostManagerList"] = projectList;


            //初始化项目经理下拉列表
            List <SelectListItem> managerList = new List <SelectListItem>();
            //managerList.Add(new SelectListItem() { Text = "全部", Value = "A" });
            //根据登陆用户身份判断
            List <Manager> maList = new List <Manager>();

            if (UserLogin.userroles.Contains("M"))
            {
                int userid = Convert.ToInt32(UserLogin.userid);
                var user   = db.Users.Where(x => x.id == userid).FirstOrDefault();
                var pros   = from Manager in db.Managers
                             where Manager.id == user.PersonId
                             select Manager;
                maList = pros.Where(p => p.ActiveFlag != "N").ToList();
            }
            else
            {
                maList = db.Managers.Where(p => p.ActiveFlag != "N" && p.ManagerType == "M").ToList();
            }

            foreach (var item in maList)
            {
                SelectListItem listItem = new SelectListItem();
                listItem.Text  = item.ManagerName;
                listItem.Value = item.id.ToString();
                managerList.Add(listItem);
            }
            ViewData["ManagerList"] = managerList;

            //初始化项目状态下拉列表
            List <SelectListItem> projStatusList = new List <SelectListItem>();

            //projStatusList.Add(new SelectListItem() { Text = "全部", Value = "A" });
            foreach (var item in db.Dictionaries.Where(d => d.TYPE == "PROJECTSTATUS" && d.CODE != "C"))
            {
                SelectListItem listItem = new SelectListItem();
                listItem.Text  = item.VALUE;
                listItem.Value = item.CODE;
                projStatusList.Add(listItem);
            }
            ViewData["ProjStatusList"] = projStatusList;

            ProjectsBO projectBO = new ProjectsBO();

            try
            {
                // TODO: Add insert logic here
                db.Projects.Add(project);
                project.CreatedBy      = Convert.ToInt32(UserLogin.userid);
                project.CreationDate   = System.DateTime.Now;
                project.LastUpdateDate = System.DateTime.Now;
                project.LastUpdatedBy  = Convert.ToInt32(UserLogin.userid);

                string msg = projectBO.ValidateProject(project);
                if (!String.IsNullOrEmpty(msg))
                {
                    ViewBag.ErrorMsg = msg;
                    return(View(project));
                }
                db.SaveChanges();
                return(RedirectToAction("Index", new { projectNum = project.ProjectNum }));
            }
            catch (Exception ex)
            {
                ViewBag.ErrorMsg = ex.Message;
                return(View());
            }
        }