public ActionResult Edit(CardCreateEditViewModel model)
        {
            Sidebar();
            var temp = db.Cards.FirstOrDefault(s => s.ID == model.ID);

            var          tempenterprise = db.Enterprises.FirstOrDefault(s => s.ID == temp.EnterpriseID);
            IConfig      config         = new ConfigMini();
            WeChatMinApi w = new WeChatMinApi(config);

            //防止企业用户串号修改
            if (AccontData.UserType == UserType.Enterprise &&
                temp.EnterpriseID != AccontData.EnterpriseID)
            {
                return(this.ToError("错误", "没有该操作权限", Url.Action("Index")));
            }
            if (ModelState.IsValid)
            {
                var t = db.Cards.FirstOrDefault(s => s.ID == model.ID);
                t.Name        = model.Name;
                t.Gender      = model.Gender;
                t.Avatar      = string.Join(",", model.Avatar.Images);
                t.PhoneNumber = model.PhoneNumber;
                t.Email       = model.Email;
                t.WeChatCode  = model.WeChatCode;
                t.Mobile      = model.Mobile;
                t.Position    = model.Position;
                t.Remark      = model.Remark;
                t.Info        = model.Info;
                t.Enable      = model.Enable;
                t.Voice       = string.Join(",", model.Voice.Images);
                t.Video       = string.Join(",", model.Video.Images);
                t.Images      = string.Join(",", model.Images.Images);
                t.Sort        = model.Sort;
                if (string.IsNullOrWhiteSpace(temp.WeChatMiniQrCode))
                {
                    var scene = new Dictionary <string, string>();
                    scene.Add("CardId", model.ID.ToString());

                    t.WeChatMiniQrCode = w.GetWXACodeUnlimit(Common.WeChat.WeChatPage.CardDetail, scene);
                }
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(model));
        }
Exemple #2
0
        private ApplicationUser CreateByWeChat(Common.WeChat.UserInfoResult model)
        {
            string  username, nickname, avart, unionId = model.UnionID;
            var     user   = db.Users.FirstOrDefault(s => s.WeChatID == unionId);
            IConfig config = null;

            switch (model.Type)
            {
            case WeChatAccount.AiCardMini:
                config = new ConfigMini();
                break;

            case WeChatAccount.AiCardPersonalMini:
                config = new ConfigMiniPersonal();
                break;

            default:
            case WeChatAccount.PC:
                config = new ConfigWeChatWork();
                break;
            }
            if (user != null)
            {
                string appID = config.AppID;
                var    op1   = new Bll.Users.UserOpenID(user);
                op1.AddOpenID(appID, model.OpenID);
                db.SaveChanges();
                return(user);
            }
            nickname = model.NickName;

            avart = model.HeadImgUrl;
            if (!string.IsNullOrWhiteSpace(avart))
            {
                try
                {
                    avart = this.Download(avart);
                }
                catch (Exception)
                {
                    avart = "~/Content/Images/404/avatar.png";
                }
            }
            unionId = model.UnionID;

            #region 把图片传到七牛
            var path = Server.MapPath(avart);
            avart = new Common.Qiniu.QinQiuApi().UploadFile(path, true);
            #endregion


            do
            {
                username = $"wc{DateTime.Now:yyyyMMddHHmmss}{Comm.Random.Next(1000, 9999)}";
            } while (db.Users.Any(s => s.UserName == username));
            if (string.IsNullOrWhiteSpace(nickname))
            {
                nickname = username;
            }
            user = new ApplicationUser
            {
                WeChatID          = unionId,
                UserName          = username,
                NickName          = nickname,
                Avatar            = avart,
                RegisterDateTime  = DateTime.Now,
                LastLoginDateTime = DateTime.Now,
                UserType          = UserType.Personal
            };
            var option = new Bll.Users.UserOpenID(user);
            option.AddOpenID(config.AppID, model.OpenID);
            var r = UserManager.Create(user);
            user = db.Users.FirstOrDefault(s => s.WeChatID == unionId);

            db.SaveChanges();
            if (!r.Succeeded)
            {
                throw new Exception(r.Errors.FirstOrDefault());
            }

            return(user);
        }