コード例 #1
0
 public ActionResult Signup(RegisterModel model)
 {
     using (var db = new RIPPWebEntities())
     {
         // Attempt to register the user
         MembershipCreateStatus createStatus = MembershipCreateStatus.Success;
         db.S_User.Add(new S_User()
         {
             RealName      = model.RealName.Trim(),
             PhoneCell     = model.CellPhone.Trim(),
             Email         = model.Email.Trim(),
             GroupID       = model.GroupID,
             Pwd           = Common.MD5_Pass(model.Password),
             LastLoginTime = DateTime.Now,
             AddTime       = DateTime.Now
         });
         db.SaveChanges();
         if (createStatus == MembershipCreateStatus.Success)
         {
             return(RedirectToAction("Waite", "Account"));
         }
         else
         {
             ModelState.AddModelError("", ErrorCodeToString(createStatus));
         }
     }
     // If we got this far, something failed, redisplay form
     return(View(model));
 }
コード例 #2
0
        public ActionResult AjaxCell()
        {
            using (var db = new RIPPWebEntities())
            {
                string uname = Request.Form["param"].ToString();

                var t = db.S_User.Where(d => d.PhoneCell == uname && !d.Deleted).Count() > 0;
                if (Request.Form.AllKeys.Contains("ID"))
                {
                    int id = Convert.ToInt32(Request.Form["ID"].ToString());

                    t = db.S_User.Where(d => d.PhoneCell == uname && d.ID != id && !d.Deleted).Count() > 0;
                }
                if (t)
                {
                    return new RenderJsonResult()
                           {
                               ResultStr = "手机号码已经存在"
                           }
                }
                ;
                else
                {
                    return new RenderJsonResult()
                           {
                               ResultStr = "y"
                           }
                };
            }
        }
コード例 #3
0
ファイル: SpecController.cs プロジェクト: Volador17/OilCute
 //
 // GET: /Admin/Spec/
 public ActionResult Index(int?page, string t = "m", string instrument = "", string group = "")
 {
     if (!RIPP.Web.Chem.Tools.Common.IsLogin)
     {
         return(new HttpUnauthorizedResult());
     }
     ViewBag.Title = "所有的光谱列表";
     ViewBag.t     = t;
     ViewBag.Nav   = new Models.LeftNavEntity()
     {
         Panel = Models.LeftNavPanel.System
     };
     using (var db = new RIPPWebEntities())
     {
         var user = RIPP.Web.Chem.Tools.Common.Get_User;
         IQueryable <spec> lst = null;
         if (t == "m")
         {
             lst               = db.spec.Where(d => d.uid == user.ID);
             ViewBag.Title     = "我上传的光谱列表";
             ViewBag.Nav.Panel = Models.LeftNavPanel.User;
         }
         else
         {
             lst = db.spec.Where(d => 1 == 1);
         }
         var olst = lst.OrderByDescending(d => d.id);
         page = page.HasValue ? page.Value : 1;
         var pagingData = new Models.PaginatedList <spec>(olst, page.Value, 10, olst.Count());
         return(View(pagingData));
     }
 }
コード例 #4
0
        public ActionResult FindPassword(FormCollection form)
        {
            ViewBag.ok = false;
            var email = form["email"].Trim();

            using (var db = new RIPPWebEntities())
            {
                var has_member = db.S_User.FirstOrDefault(d => d.Email == email && !d.Deleted);
                if (has_member == null)
                {
                    ViewBag.Msg = "该Email还未注册";
                    return(View());
                }
                string guid   = Guid.NewGuid().ToString();
                string secret = Common.GetRnd(4, true, true, true);
                db.S_FindPWD.Add(new S_FindPWD()
                {
                    uid        = has_member.ID,
                    Email      = has_member.Email,
                    Secret     = secret,
                    Guid       = guid,
                    SubmitDate = DateTime.Now
                });
                db.SaveChanges();
                Common.SendEmail(has_member.Email, has_member.RealName, guid, secret);
                ViewBag.ok  = true;
                ViewBag.Msg = "重置密码的邮件已发送到" + has_member.Email + ",请尽快重置密码!";
            }
            return(View());
        }
コード例 #5
0
ファイル: ModelController.cs プロジェクト: Volador17/OilCute
        /// <summary>
        /// 详细信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Detail(int id, int?page)
        {
            if (!Common.IsLogin)
            {
                return(new HttpUnauthorizedResult());
            }

            using (var db = new RIPPWebEntities())
            {
                var item = db.model.Where(d => d.id == id).FirstOrDefault();

                var nav = new Models.LeftNavEntity()
                {
                    Panel = Models.LeftNavPanel.User
                };
                if (item != null && item.uid != Common.Get_UserID)
                {
                    nav.Panel = Models.LeftNavPanel.System;
                }
                ViewBag.Nav   = nav;
                ViewBag.model = item;

                var olst = db.results.Where(d => d.mid == id).OrderByDescending(d => d.id);
                page = page.HasValue ? page.Value : 1;
                var pagingData = new Models.PaginatedList <results>(olst, page.Value, 30, olst.Count());
                return(View(pagingData));
            }
        }
コード例 #6
0
 public static S_User GetUserByID(int id)
 {
     using (var db = new RIPPWebEntities())
     {
         return(db.S_User.Where(d => d.ID == id && !d.Deleted).FirstOrDefault());
     }
 }
コード例 #7
0
ファイル: UsersController.cs プロジェクト: Volador17/OilCute
        public ActionResult Edit(int?id)
        {
            ViewBag.Nav = new Models.LeftNavEntity()
            {
                Panel = Models.LeftNavPanel.User
            };
            if (!Common.IsLogin)
            {
                return(new HttpUnauthorizedResult());
            }
            if (!id.HasValue)
            {
                id = Common.Get_UserID;
            }
            using (var db = new RIPPWebEntities())
            {
                //if (!Permission.Check(ModelEnum.Users, id.Value > 0 ? PermissionEnum.Edit : PermissionEnum.Add, Common.Get_User.Roles, out role, Common.Get_UserID, id.Value))
                //    return RedirectToAction("Forbid", "Home");
                S_User u = null;
                if (id.HasValue)
                {
                    u = db.S_User.Where(d => d.ID == id && !d.Deleted).FirstOrDefault();
                    if (!Common.Get_User.HasRole(RoleEnum.Administrator) && !(Common.Get_User.GroupID == u.GroupID && Common.Get_User.HasRole(RoleEnum.GroupMaster)))
                    {
                        return(RedirectToAction("Forbid", "Home"));
                    }
                }
                else
                {
                    u = Common.Get_User;
                }


                if (u == null)
                {
                    u = new S_User()
                    {
                        GroupID = 0
                    };
                }

                ViewBag.Groups = db.S_Group.Where(d => !d.Deleted).ToList().Select(d => new SelectListItem()
                {
                    Text = d.Names, Value = d.ID.ToString(), Selected = d.ID == u.GroupID
                }).ToList();

                ViewBag.Models = db.model.Where(d => d.gid == u.GroupID).ToList().Select(d => new SelectListItem()
                {
                    Text = d.name, Value = d.id.ToString(), Selected = d.id == u.modelid
                }).ToList();

                return(View(u));
            }
        }
コード例 #8
0
 //
 // GET: /Account/Register
 /// <summary>
 /// 注册
 /// </summary>
 /// <returns></returns>
 public ActionResult Signup()
 {
     using (var db = new RIPPWebEntities())
     {
         ViewBag.Groups = db.S_Group.Where(d => !d.Deleted).ToList().Select(d => new SelectListItem()
         {
             Text = d.Names, Value = d.ID.ToString()
         }).ToList();
         ViewBag.Groups.Insert(0, new SelectListItem()
         {
             Text = "--请选择--", Value = "0"
         });
     }
     return(View());
 }
コード例 #9
0
ファイル: UsersController.cs プロジェクト: Volador17/OilCute
        //
        // GET: /Admin/Users/
        /// <summary>
        /// /Admin/Users/Index?t=a表示所有用户t=g表示本小组用户
        /// </summary>
        /// <param name="page"></param>
        /// <param name="t"></param>
        /// <returns></returns>
        public ActionResult Index(int?page, string t = "a", string u = "")
        {
            if (!Common.IsLogin)
            {
                return(new HttpUnauthorizedResult());
            }
            ViewBag.Title = "所有用户列表";
            ViewBag.t     = t;
            ViewBag.Nav   = new Models.LeftNavEntity()
            {
                Panel = Models.LeftNavPanel.System
            };
            using (var db = new RIPPWebEntities())
            {
                var user = Common.Get_User;
                IOrderedQueryable <S_User> lst = null;
                //if (t == "a" && (user.Roles.Contains(RoleEnum.Administrator) || user.Roles.Contains(RoleEnum.Chairman)))
                if (t == "a" && user.HasRole(RoleEnum.Administrator))
                {
                    lst = db.S_User.Where(d => !d.Deleted).OrderByDescending(d => d.ID);
                }
                else if (t == "g" && user.HasRole(RoleEnum.GroupMaster))
                {
                    lst         = db.S_User.Where(d => 1 == 2 && !d.Deleted).OrderByDescending(d => d.ID);
                    ViewBag.Nav = new Models.LeftNavEntity()
                    {
                        Panel = Models.LeftNavPanel.Group
                    };
                }
                else
                {
                    lst = db.S_User.Where(d => 1 == 2 && !d.Deleted).OrderByDescending(d => d.ID);
                }
                //搜索

                if (!string.IsNullOrWhiteSpace(u))
                {
                    lst          = lst.Where(d => d.RealName.Contains(u)).OrderByDescending(d => d.ID);
                    ViewBag.User = u;
                }


                page = page.HasValue ? page.Value : 1;
                var pagingData = new Models.PaginatedList <S_User>(lst, page.Value, 10, lst.Count());
                return(View(pagingData));
            }
        }
コード例 #10
0
ファイル: SpecController.cs プロジェクト: Volador17/OilCute
        public ActionResult Choose(int?page)
        {
            if (!RIPP.Web.Chem.Tools.Common.IsLogin)
            {
                return(new HttpUnauthorizedResult());
            }

            using (var db = new RIPPWebEntities())
            {
                var user = RIPP.Web.Chem.Tools.Common.Get_User;

                var olst = db.spec.OrderByDescending(d => d.id);
                page = page.HasValue ? page.Value : 1;
                var pagingData = new Models.PaginatedList <spec>(olst, page.Value, 10, olst.Count());
                return(View(pagingData));
            }
        }
コード例 #11
0
ファイル: HomeController.cs プロジェクト: Volador17/OilCute
        //
        // GET: /Admin/Home/

        public ActionResult Index()
        {
            if (!Common.IsLogin)
            {
                return(new HttpUnauthorizedResult());
            }
            using (var db = new RIPPWebEntities())
            {
                var m = new Models.HomeIndexModel();
                m.User        = Common.Get_User;
                m.CountModel  = db.model.Where(d => d.uid == Common.Get_UserID).Count();
                m.CountSpec   = db.spec.Where(d => d.uid == Common.Get_UserID).Count();
                m.CountResult = db.results.Where(d => d.uid == Common.Get_UserID).Count();

                return(View(m));
            }
        }
コード例 #12
0
 public ActionResult EmailBack(string guid)
 {
     ViewBag.Msg = "请输入邮箱中的验证码";
     using (var db = new RIPPWebEntities())
     {
         var is_have = db.S_FindPWD.FirstOrDefault(d => d.Guid == guid);
         if (is_have == null)
         {
             ViewBag.hasval = false;
             ViewBag.Msg    = "错误页面";
             return(View());
         }
         ViewBag.hasval         = true;
         ViewBag.userName       = db.S_User.FirstOrDefault(d => d.ID == is_have.uid && !d.Deleted).RealName;
         Session["EmailBackID"] = is_have.uid;
     }
     return(View());
 }
コード例 #13
0
ファイル: SpecController.cs プロジェクト: Volador17/OilCute
        public ActionResult Predict(int modelid, string specid)
        {
            ViewBag.Title = "预测结果";
            ViewBag.Nav   = new Models.LeftNavEntity()
            {
                Panel = Models.LeftNavPanel.User
            };



            if (string.IsNullOrWhiteSpace(specid))
            {
                return(View());
            }
            using (var db = new RIPPWebEntities())
            {
                var model = db.model.Where(d => d.id == modelid).FirstOrDefault();
                if (model == null)
                {
                    return(View());
                }
                //查询未被预测过的光谱
                string sql           = string.Format("select * from spec where id not in ( select sid from results where mid={0} and sid in ({1}) )", modelid, specid);
                var    noResultSpecs = db.Database.SqlQuery <spec>(sql).ToList();
                foreach (var s in noResultSpecs)
                {
                    ComponentList c;
                    var           r = model.Predict(s, out c);
                    db.results.Add(new results()
                    {
                        addtime  = DateTime.Now,
                        mid      = modelid,
                        sid      = s.id,
                        uid      = RIPP.Web.Chem.Tools.Common.Get_UserID,
                        contents = Serialize.ObjectToByte(r),
                        componts = c != null ? Serialize.ObjectToByte(c) : null
                    });
                }
                db.SaveChanges();
                sql = string.Format("select * from results where mid={0} and sid in ({1})", modelid, specid);
                return(View(db.Database.SqlQuery <results>(sql).ToList()));
            }
        }
コード例 #14
0
ファイル: GroupController.cs プロジェクト: Volador17/OilCute
        //
        // GET: /API/Group/

        public ActionResult Index(JQueryDataTablesModel param)
        {
            using (var db = new RIPPWebEntities())
            {
                var lst  = db.S_Group;
                var page = lst.OrderByDescending(d => d.ID).Skip(param.iDisplayStart).Take(param.iDisplayLength).ToList().Select(d => new GroupTable()
                {
                    ID           = d.ID,
                    MasterUserID = d.MasterUserID,
                    MasterName   = d.MasterUser != null ? d.MasterUser.RealName : "",
                    Name         = d.Names,
                    Remark       = d.Remark
                });
                return(new RenderJsonResult()
                {
                    Result = new JQueryDataTablesResponse <GroupTable>(page, lst.Count(), lst.Count(), param.sEcho)
                });
            }
        }
コード例 #15
0
ファイル: UsersController.cs プロジェクト: Volador17/OilCute
        public ActionResult Delete(int id)
        {
            if (!Common.IsLogin)
            {
                return(new HttpUnauthorizedResult());
            }


            using (var db = new RIPPWebEntities())
            {
                var item = db.S_User.Where(d => d.ID == id && !d.Deleted).FirstOrDefault();
                if (item != null)
                {
                    item.Deleted = true;

                    db.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }
        }
コード例 #16
0
        public ActionResult ResetPass(FormCollection form)
        {
            string newpwd = form["password"].Trim();
            int    uid    = int.Parse(Session["EmailBackID"].ToString());

            using (var db = new RIPPWebEntities())
            {
                var changeUser = db.S_User.FirstOrDefault(d => d.ID == uid && !d.Deleted);
                changeUser.Pwd = Common.MD5_Pass(newpwd);
                var userSubmits = db.S_FindPWD.Where(d => d.uid == uid);
                foreach (var temp in userSubmits)
                {
                    db.S_FindPWD.Remove(temp);//找回密码后删除
                }
                db.SaveChanges();
                ViewBag.allowChange = false;
                ViewBag.Msg         = "您的密码已重置,请重新<a href=\"/Account/signin\">登录</a>。";
                return(View());
            }
        }
コード例 #17
0
        public ActionResult EmailBack(FormCollection form)
        {
            int    uid    = int.Parse(Session["EmailBackID"].ToString());
            string secret = form["secret"].Trim();

            using (var db = new RIPPWebEntities())
            {
                var temp = db.S_FindPWD.FirstOrDefault(d => d.uid == uid && d.Secret.Equals(secret));
                if (temp != null)
                {
                    ViewBag.Msg         = temp.Email + "用户您好,请在下方重新填写您的密码。";
                    ViewBag.allowChange = true;
                    return(View("ResetPass"));
                }
                else
                {
                    ViewBag.Msg    = "验证码错误!";
                    ViewBag.hasval = true;
                    return(View());
                }
            }
        }
コード例 #18
0
ファイル: UsersController.cs プロジェクト: Volador17/OilCute
 /// <summary>
 /// 个人基本信息
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public ActionResult Detail(int id = 0)
 {
     ViewBag.Nav = new Models.LeftNavEntity()
     {
         Panel = Models.LeftNavPanel.User
     };
     if (!Common.IsLogin)
     {
         return(new HttpUnauthorizedResult());
     }
     if (id <= 0)
     {
         return(View(Common.Get_User));
     }
     else
     {
         using (var db = new RIPPWebEntities())
         {
             return(View(db.S_User.Where(d => d.ID == id && !d.Deleted).FirstOrDefault()));
         }
     }
 }
コード例 #19
0
        public static bool ValidateUser(string Email, string Password, bool remember, out string msg)
        {
            using (var db = new RIPPWebEntities())
            {
                msg = "";
                bool   tag   = false;
                string pass  = Common.MD5_Pass(Password);
                var    ulist = db.S_User.Where(u => (u.Email == Email || u.PhoneCell == Email) && !u.Deleted);
                if (ulist.Count() == 0)
                {
                    msg = "您输入的手机号或邮箱未被注册,请先 <a href=\"/Account/signup\">注册</a>。";
                    return(false);
                }
                ulist = ulist.Where(d => d.Pwd == pass);

                tag = ulist.Count() > 0;
                if (!tag)
                {
                    msg = "您输入的密码有误,您可 <a href=\"/Account/Getpass\">找回密码</a>。";
                    return(false);
                }
                else
                {
                    var user = ulist.First();
                    user.LastLoginTime = DateTime.Now;
                    if (!user.ApplyState)
                    {
                        tag = false;
                        msg = "账号未被审核,无法登录,请联系管理员: [email protected]。";
                    }
                    else
                    {
                        FormsAuthentication.SetAuthCookie(user.ID.ToString(), remember);
                    }
                }

                return(tag);
            }
        }
コード例 #20
0
ファイル: UsersController.cs プロジェクト: Volador17/OilCute
        public ActionResult Enable(int id)
        {
            ViewBag.Nav = new Models.LeftNavEntity()
            {
                Panel = Models.LeftNavPanel.User
            };
            if (!Common.IsLogin)
            {
                return(new HttpUnauthorizedResult());
            }


            using (var db = new RIPPWebEntities())
            {
                var item = db.S_User.Where(d => d.ID == id && !d.Deleted).FirstOrDefault();
                if (item != null)
                {
                    item.Deleted = false;
                    db.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }
        }
コード例 #21
0
 //
 // GET: /API/Spec/
 /// <summary>
 /// 暂时不支持查询和排序
 /// </summary>
 /// <param name="p"></param>
 /// <returns></returns>
 public ActionResult Index(JQueryDataTablesModel param)
 {
     if (!RIPP.Web.Chem.Tools.Common.IsLogin)
     {
         return(new HttpUnauthorizedResult());
     }
     using (var db = new RIPPWebEntities())
     {
         //string sql="select * from ( select top {0} * from ( select top {1} * from spec from
         var lst  = db.spec.OrderByDescending(d => d.id);
         var page = db.spec.OrderByDescending(d => d.id).Skip(param.iDisplayStart).Take(param.iDisplayLength).ToList().Select(d => new SpecModel()
         {
             addtime = d.addtime,
             ext     = d.ext,
             id      = d.id,
             name    = d.name
         });
         return(new RenderJsonResult()
         {
             Result = new JQueryDataTablesResponse <SpecModel>(page, lst.Count(), page.Count(), param.sEcho)
         });
     }
 }
コード例 #22
0
        private void DeliverFile(HttpContext context)
        {
            var type = context.Request["t"];
            var id   = Convert.ToInt32(context.Request["id"]);

            using (var db = new RIPPWebEntities())
            {
                string path = "";
                switch (type)
                {
                case "m":
                    var model = db.model.Where(d => d.id == id).FirstOrDefault();
                    path = model != null ? model.path : null;
                    break;

                case "s":
                    var spec = db.spec.Where(d => d.id == id).FirstOrDefault();
                    path = spec != null ? spec.path : null;
                    break;

                default:
                    break;
                }
                var filePath = Path.Combine(System.Web.HttpContext.Current.Server.MapPath("~/Files/"), path);
                if (File.Exists(filePath))
                {
                    context.Response.AddHeader("Content-Disposition", "attachment; ");
                    context.Response.ContentType = "application/octet-stream";
                    context.Response.ClearContent();
                    context.Response.WriteFile(filePath);
                }
                else
                {
                    context.Response.StatusCode = 404;
                }
            }
        }
コード例 #23
0
        // Delete file from the server
        private void DeleteFile(HttpContext context)
        {
            var type = context.Request["t"];
            var id   = Convert.ToInt32(context.Request["id"]);

            using (var db = new RIPPWebEntities())
            {
                string sql = "", filePath = "";
                switch (type)
                {
                case "m":          //删除模型
                    var m = db.model.Where(d => d.id == id).FirstOrDefault();
                    if (m != null) //删除文件
                    {
                        filePath = Path.Combine(HttpContext.Current.Server.MapPath("~/"), m.path);
                        if (File.Exists(filePath))
                        {
                            File.Delete(filePath);
                        }
                    }
                    //先删除模型所预测过的结果
                    sql = string.Format("delete from results where mid={0}", id);
                    db.Database.ExecuteSqlCommand(sql);
                    sql = string.Format("delete from model where id={0}", id);
                    db.Database.ExecuteSqlCommand(sql);
                    break;

                case "s":
                    var s = db.spec.Where(d => d.id == id).FirstOrDefault();
                    if (s != null)    //删除文件
                    {
                        filePath = Path.Combine(HttpContext.Current.Server.MapPath("~/"), s.path);
                        if (File.Exists(filePath))
                        {
                            File.Delete(filePath);
                        }
                    }
                    //先删除模型所预测过的结果
                    sql = string.Format("delete from results where sid={0}", id);
                    db.Database.ExecuteSqlCommand(sql);
                    sql = string.Format("delete from spec where id={0}", id);
                    db.Database.ExecuteSqlCommand(sql);
                    break;

                default:
                    break;
                }

                context.Response.AddHeader("Vary", "Accept");
                try
                {
                    if (context.Request["HTTP_ACCEPT"].Contains("application/json"))
                    {
                        context.Response.ContentType = "application/json";
                    }
                    else
                    {
                        context.Response.ContentType = "text/plain";
                    }
                }
                catch
                {
                    context.Response.ContentType = "text/plain";
                }



                context.Response.Write("{\"success\":true}");
            }
        }
コード例 #24
0
        private FilesStatus upload(Stream inputStream, string fileName, HttpContext context)
        {
            var statu = new FilesStatus();

            var filename     = RIPP.Web.Chem.Tools.Common.GetRnd(10, true, true, false) + Path.GetExtension(fileName);
            var tempfullName = Path.Combine(StorageRoot, filename);

            statu.progress = "1.0";
            statu.size     = (int)inputStream.Length;
            statu.name     = fileName;
            try
            {
                //先保存在服务器一个临时文件
                using (var fs = new FileStream(tempfullName, FileMode.Append, FileAccess.Write))
                {
                    var buffer = new byte[1024];
                    var l      = inputStream.Read(buffer, 0, 1024);
                    while (l > 0)
                    {
                        fs.Write(buffer, 0, l);
                        l = inputStream.Read(buffer, 0, 1024);
                    }
                    fs.Flush();
                    fs.Close();
                }
            }
            catch
            {
                statu.error = "服务器错误,上传文件失败!";
                return(statu);
            }

            //根据文件后缀尝试打开文件
            var   ftype   = BindModel.CheckType(tempfullName);
            model dbmodel = new model();
            spec  sp      = new spec();

            try
            {
                statu.type   = ftype.GetDescription();
                dbmodel.path = Path.Combine(RIPP.Web.Chem.Tools.Common.GetUploadPath(), filename);
                sp.path      = dbmodel.path;
                switch (ftype)
                {
                case FileExtensionEnum.Allmethods:
                    var mBind = BindModel.ReadModel <BindModel>(tempfullName);
                    statu.description  = mBind.ToString();
                    dbmodel.createtime = mBind.CreateTime;
                    dbmodel.name       = mBind.Name;
                    // ;
                    // dbmodel.type = (int)ftype;
                    //  dbmodel.
                    break;

                case FileExtensionEnum.PLSBind:
                    var mPLS = BindModel.ReadModel <PLSModel>(tempfullName);
                    statu.description  = mPLS.ToString();
                    dbmodel.createtime = mPLS.CreateTime;
                    dbmodel.name       = mPLS.Name;
                    break;

                case FileExtensionEnum.IdLib:
                    var mId = BindModel.ReadModel <IdentifyModel>(tempfullName);
                    statu.description  = mId.ToString();
                    dbmodel.createtime = mId.CreateTime;
                    dbmodel.name       = mId.Name;
                    break;

                case FileExtensionEnum.FitLib:
                    var mFitting = BindModel.ReadModel <FittingModel>(tempfullName);
                    statu.description  = mFitting.ToString();
                    dbmodel.createtime = mFitting.CreateTime;
                    dbmodel.name       = mFitting.Name;
                    break;

                case FileExtensionEnum.PLS1:
                case FileExtensionEnum.PLSANN:
                    var mPLS1 = BindModel.ReadModel <PLSSubModel>(tempfullName);
                    statu.description  = mPLS1.ToString();
                    dbmodel.createtime = mPLS1.CreateTime;
                    dbmodel.name       = mPLS1.Name;
                    break;

                case FileExtensionEnum.ItgBind:
                    var itgSub = BindModel.ReadModel <IntegrateModel>(tempfullName);
                    statu.description  = itgSub.ToString();
                    dbmodel.createtime = itgSub.CreateTime;
                    dbmodel.name       = itgSub.Name;
                    break;

                case FileExtensionEnum.Spec:
                default:
                    var s = new Spectrum(tempfullName);
                    ftype             = FileExtensionEnum.Spec;
                    sp.Spec           = s;
                    sp.name           = Path.GetFileName(fileName);
                    statu.description = "光谱文件";
                    break;
                }
            }
            catch (Exception ex)//读取文件失败
            {
                statu.error = "上传的文件类型有误,服务器无法识别,上传文件失败!";

                if (File.Exists(tempfullName))
                {
                    File.Delete(tempfullName);
                }
                return(statu);
            }


            //根据文件类型保存数据库
            using (var db = new RIPPWebEntities())
            {
                if (ftype != FileExtensionEnum.Unkown)
                {
                    var user = RIPP.Web.Chem.Tools.Common.Get_User;
                    if (user == null)
                    {
                        var uid = Convert.ToInt32(context.Request["uid"]);
                        user = db.S_User.Where(d => d.ID == uid).FirstOrDefault();
                    }

                    if (ftype == FileExtensionEnum.Spec)//光谱
                    {
                        if (RIPP.Web.Chem.Tools.Common.UserCanPredict(user))
                        {
                            sp.addtime = DateTime.Now;
                            sp.ext     = Path.GetExtension(fileName).Substring(1);
                            sp.uid     = user.ID;
                            sp.gid     = user.GroupID;
                            db.spec.Add(sp);
                            db.SaveChanges();
                            statu.deleteType = "DELETE";
                            statu.deleteUrl  = "/upload/UploadHandler.ashx?t=s&id=" + sp.id;
                            statu.url        = "/admin/spec/detail/" + sp.id;
                            statu.id         = sp.id;

                            File.Move(tempfullName, Path.Combine(HttpContext.Current.Server.MapPath("~/"), sp.path));//移动刚才上传的临时文件
                        }
                        else
                        {
                            statu.error = "您无权上传光谱文件,请与管理员联系。";
                            if (File.Exists(tempfullName))
                            {
                                File.Delete(tempfullName);
                            }
                        }
                    }
                    else//模型
                    {
                        if (user.HasRole(RoleEnum.Administrator) || user.HasRole(RoleEnum.Engineer))
                        {
                            dbmodel.addtime = DateTime.Now;
                            dbmodel.type    = (int)ftype;
                            dbmodel.uid     = user.ID;
                            dbmodel.gid     = user.GroupID;
                            db.model.Add(dbmodel);
                            db.SaveChanges();
                            statu.deleteType = "DELETE";
                            statu.deleteUrl  = "/upload/UploadHandler.ashx?t=m&id=" + dbmodel.id;
                            statu.url        = "/admin/model/detail/" + dbmodel.id;
                            statu.id         = dbmodel.id;
                            File.Move(tempfullName, Path.Combine(HttpContext.Current.Server.MapPath("~/"), dbmodel.path));//移动刚才上传的临时文件
                        }
                        else
                        {
                            statu.error = "您无权上传模型文件,请与管理员联系。";
                            if (File.Exists(tempfullName))
                            {
                                File.Delete(tempfullName);
                            }
                        }
                    }
                }
            }

            return(statu);
        }
コード例 #25
0
ファイル: UsersController.cs プロジェクト: Volador17/OilCute
        public ActionResult Edit(int id, S_User u, FormCollection form)
        {
            if (!Common.IsLogin)
            {
                return(new HttpUnauthorizedResult());
            }
            //RoleEnum role;

            //if (!Permission.Check(ModelEnum.Users, id > 0 ? PermissionEnum.Edit : PermissionEnum.Add, Common.Get_User.Roles, out role, Common.Get_UserID, id))
            //    return RedirectToAction("Forbid", "Home");

            if (!string.IsNullOrWhiteSpace(u.Pwd))
            {
                u.Pwd = Common.MD5_Pass(u.Pwd.Trim());
            }

            using (var db = new RIPPWebEntities())
            {
                var dbu = db.S_User.Where(d => d.ID == u.ID && !d.Deleted).FirstOrDefault();
                if (dbu != null)
                {
                    //if (u.ICID != dbu.ICID)//通知系统,用户卡被修改过,方便终端同步
                    //    Common.UserCardChanged();
                    dbu.Address    = u.Address;
                    dbu.ApplyState = u.ApplyState;
                    dbu.Email      = u.Email;

                    dbu.GroupID     = u.GroupID;
                    dbu.PhoneCell   = u.PhoneCell;
                    dbu.PhoneOffice = u.PhoneOffice;
                    if (!string.IsNullOrWhiteSpace(u.Pwd))
                    {
                        dbu.Pwd = u.Pwd;
                    }
                    dbu.RealName = u.RealName;
                    dbu.Remark   = u.Remark;
                }
                else
                {
                    if (db.S_User.Where(d => d.Email == u.Email && !d.Deleted).Count() > 0)
                    {
                        return(View("Info", new Models.InfoModel()
                        {
                            Icon = Models.InfoPage.highlight,
                            Info = "Email重复,请重新输入!"
                        }));
                    }
                    u.AddTime       = DateTime.Now;
                    u.LastLoginTime = DateTime.Now;
                    db.S_User.Add(u);
                }
                db.SaveChanges();



                //权限
                List <int> roleid = new List <int>();

                if (form.AllKeys.Contains(RoleEnum.Administrator.ToString()) && form[RoleEnum.Administrator.ToString()] == "1")
                {
                    roleid.Add((int)RoleEnum.Administrator);
                }
                if (form.AllKeys.Contains(RoleEnum.Engineer.ToString()) && form[RoleEnum.Engineer.ToString()] == "1")
                {
                    roleid.Add((int)RoleEnum.Engineer);
                }
                if (form.AllKeys.Contains(RoleEnum.GroupMaster.ToString()) && form[RoleEnum.GroupMaster.ToString()] == "1")
                {
                    roleid.Add((int)RoleEnum.GroupMaster);
                }
                if (form.AllKeys.Contains(RoleEnum.Operator.ToString()) && form[RoleEnum.Operator.ToString()] == "1")
                {
                    roleid.Add((int)RoleEnum.Operator);
                }


                var rlst = db.S_UserInRole.Where(r => r.UserID == u.ID);
                foreach (var r in rlst)
                {
                    db.S_UserInRole.Remove(r);
                }
                foreach (var i in roleid)
                {
                    db.S_UserInRole.Add(new S_UserInRole()
                    {
                        RoleID = i,
                        UserID = u.ID
                    });
                }
                db.SaveChanges();


                return(RedirectToAction("Index"));
            }
        }