Example #1
0
        public string Create(PostCreateDto model)
        {
            try
            {
                Posts po = new Posts
                {
                    PostId        = Guid.NewGuid(),
                    ForumId       = new Guid(model.ForumId),
                    UserId        = new Guid(model.UserId),
                    Title         = model.Title,
                    Description   = model.Description,
                    CreatedDate   = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.Local),
                    Img           = null,
                    LikeNumber    = 0,
                    DisLikeNumber = 0,
                    State         = true
                };
                // 每PO一篇文 +50 points
                ForumMembers user = _members.GetAll2().FirstOrDefault(x => x.UserId.ToString() == model.UserId);
                user.Points = user.Points + 50;

                _posts.Create(po);
                _posts.SaveContext();

                _members.Update(user);
                _members.SaveContext();
                return("Po文成功,積分增加50點");
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
Example #2
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("點數不足,請加把勁");
        }
Example #3
0
        /// <summary>
        /// Get single member info
        /// </summary>
        /// <param name="userEmail"></param>
        /// <returns></returns>
        public ReadMemberDTO GetSingleMember(string userEmail)
        {
            ForumMembers  source = _members.GetAll().First(x => x.Email == userEmail);
            ReadMemberDTO result = new ReadMemberDTO
            {
                UserId    = source.UserId.ToString(),
                Name      = source.Name,
                Email     = source.Email,
                Age       = (int)source.Age,
                Phone     = source.Phone,
                Gender    = source.Gender,
                Points    = (decimal)source.Points,
                ImgLink   = source.ImgLink,
                Password  = source.Password,
                TitleName = _titles.GetFirst(x => x.TitleId == source.TitleId).TitleName,
                RoleName  = _roles.GetFirst(x => x.RoleId == source.RoleId).RoleName
            };

            return(result);
        }
Example #4
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);
            }
        }
Example #5
0
        /// <summary>
        /// Edit user info
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="userEmail"></param>
        public void Edit(EditMemberDTO dto, string userEmail)
        {
            try
            {
                ForumMembers editedContext = _members.GetFirst(x => x.Email == userEmail);
                editedContext.Name     = dto.Name;
                editedContext.Password = _encrypt.ToMD5(dto.Password);
                editedContext.Age      = dto.Age;
                editedContext.Phone    = dto.Phone;
                editedContext.Gender   = dto.Gender;
                editedContext.ImgLink  = dto.ImgLink;
                //Edit TitleId base on input TitleName
                editedContext.TitleId = _titles.GetFirst(x => x.TitleName == dto.TitleName).TitleId;

                _members.Update(editedContext);
                _members.SaveContext();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
Example #6
0
 /// <summary>
 /// Edit user password to new password if forget
 /// </summary>
 /// <param name="dto"></param>
 /// <returns></returns>
 public ApiResult <EditPasswordDto> EditPasswordIfForgot(EditPasswordDto dto)
 {
     if (!_members.GetAll().Any(x => x.Email == dto.Email))
     {
         return(new ApiResult <EditPasswordDto>($"{dto.Email} not exists!"));
     }
     else
     {
         try
         {
             ForumMembers member = _members.GetFirst(x => x.Email == dto.Email);
             member.Password = _encrypt.ToMD5(dto.Password);
             _members.Update(member);
             _members.SaveContext();
             return(new ApiResult <EditPasswordDto>());
         }
         catch (Exception ex)
         {
             return(new ApiResult <EditPasswordDto>($"{ex}"));
         }
     }
 }