예제 #1
0
        /// <summary>
        /// 購買稱號系統
        /// </summary>
        /// <param name="buy"></param>
        /// <returns></returns>
        public string BuyTitle(BuyTitle buy)
        {
            ForumMembers user  = _users.GetAll2().FirstOrDefault(u => u.UserId.ToString() == buy.UserId);
            TitleDto     price = _titles.GetAll2().Select(x => new TitleDto()
            {
                TitleId   = x.TitleId,
                TitleName = x.TitleName,
                Price     = decimal.Parse(x.Price.ToString())
            }).FirstOrDefault(t => t.TitleName == buy.TitleId);

            if (user.Points > price.Price)
            {
                user.Points = user.Points - price.Price;
                _users.Update(user);
                _users.SaveContext();

                MemberTitle newtitle = new MemberTitle
                {
                    UserId     = Guid.Parse(buy.UserId),
                    HasTitleId = price.TitleId
                };

                _usertitle.Create(newtitle);
                _usertitle.SaveContext();
                return("稱號購買完成");
            }
            return("點數不足,請加把勁");
        }
예제 #2
0
        // GET: Admin/EditTitle/5
        public async Task <ActionResult> EditTitle(int id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            MemberTitle memberTitle = await db.MemberTitles.FindAsync(id);

            return(View(memberTitle));
        }
예제 #3
0
        public async Task <ActionResult> MemberTitles(NewTitleViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (model.MemberTitle.Name != null)
                    {
                        var Title = new MemberTitle
                        {
                            Name = model.MemberTitle.Name,
                        };

                        db.MemberTitles.Add(Title);
                        await db.SaveChangesAsync();

                        ViewBag.status  = true;
                        ViewBag.message = "Created Title";
                        IEnumerable <MemberTitle> Titles = await db.MemberTitles.ToListAsync();

                        var viewModel = new NewTitleViewModel()
                        {
                            MemberTitles = Titles
                        };
                        return(View(viewModel));
                    }
                    else
                    {
                        ViewBag.status  = false;
                        ViewBag.message = "Failed to create Title. Name empty.";
                        IEnumerable <MemberTitle> Titles = await db.MemberTitles.ToListAsync();

                        var viewModel = new NewTitleViewModel()
                        {
                            MemberTitles = Titles
                        };
                        return(View(viewModel));
                    }
                }
                catch (Exception e)
                {
                    IEnumerable <MemberTitle> Titles = await db.MemberTitles.ToListAsync();

                    var viewModel = new NewTitleViewModel()
                    {
                        MemberTitles = Titles
                    };
                    ViewBag.status  = false;
                    ViewBag.message = e.Message;
                    return(View(viewModel));
                }
            }
            return(View(model));
        }
예제 #4
0
        //// GET: Admin/DeleteTitle/5
        public async Task <ActionResult> DeleteTitle(int id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MemberTitle Title = await db.MemberTitles.FindAsync(id);

            db.MemberTitles.Remove(Title);
            await db.SaveChangesAsync();

            return(RedirectToAction("MemberTitles"));
        }
예제 #5
0
        public async Task <ActionResult> EditTitle([Bind(Include = "Id,Name")] MemberTitle data)
        {
            if (ModelState.IsValid)
            {
                MemberTitle memberTitle = await db.MemberTitles.FindAsync(data.Id);

                if (memberTitle != null)
                {
                    memberTitle.Name            = data.Name;
                    db.Entry(memberTitle).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    return(RedirectToAction("MemberTitles"));
                }
                return(View(data));
            }
            return(View(data));
        }
예제 #6
0
        /// <summary>
        /// Register
        /// </summary>
        /// <param name="dto"></param>
        public void Create(CreateMemberDto dto)
        {
            try
            {
                ForumMembers user = new ForumMembers()
                {
                    UserId   = Guid.NewGuid(),
                    Password = _encrypt.ToMD5(dto.Password),
                    Email    = dto.Email,
                    Name     = dto.Name,
                    Gender   = dto.Gender,
                    Age      = dto.Age,
                    Phone    = dto.Phone,
                    //Default Picture
                    ImgLink = "https://i.imgur.com/gZQyxZj.png",
                    //Set default role to "normal"
                    RoleId = _roles.GetFirst(x => x.RoleName == "一般使用者").RoleId,
                    //Set default points to 1K
                    Points = 1000,
                    //Set default title to "Novice"
                    TitleId = _titles.GetFirst(x => x.TitleName == "初心者").TitleId,
                    //RefreshToken(Use it when jwt token expired)
                    RefreshToken = Guid.NewGuid()
                };
                _members.Create(user);
                _members.SaveContext();

                //Add title "Novice" to MemberTitle when register
                MemberTitle usertitle = new MemberTitle()
                {
                    UserId     = user.UserId,
                    HasTitleId = user.TitleId
                };
                _memberTitle.Create(usertitle);
                _memberTitle.SaveContext();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }