/// <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("點數不足,請加把勁"); }
// 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)); }
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)); }
//// 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")); }
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)); }
/// <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); } }