public ActionResult CreateW(ApiAuthRegister data, MemberJoinProject memberJoinProject, string MemberID, string ProjectID, string emailorgname) { var project = db.Projects.First(x => x.ProjectID == ProjectID); ViewBag.ProjectName = project.ProjectName; if (Validator.IsValidEmail(emailorgname)) { var gro = db.Members.Where(x => x.Email == emailorgname).FirstOrDefault(); if (gro == null) { //寄送email //data= ViewBag.Message = "此使用者未註冊會員"; return(RedirectToAction("CreateW", new { ProjectID, MemberID })); } else { memberJoinProject.ProjectID = ProjectID; memberJoinProject.MemberIDOwner = MemberID; memberJoinProject.SharePerID = Share.Share; memberJoinProject.MemberIDJoin = gro.MemberID; bool exists = db.MemberJoinProjects.Any(m => m.MemberIDOwner == MemberID && m.ProjectID == ProjectID && m.MemberIDJoin == gro.MemberID); db.MemberJoinProjects.Add(memberJoinProject); if (exists == true) { return(RedirectToAction("CreateW", new { ProjectID, MemberID })); } } } else { bool groupexist = db.Groups.Any(x => x.GroupName == emailorgname); if (groupexist == false) { ViewBag.Message = "此群組不存在"; } else { var gro = db.Groups.First(x => x.GroupName == emailorgname); IEnumerable <GroupMember> groupmemberList = db.GroupMembers.Where(m => m.MemberIDOwner == MemberID && m.GroupID == gro.GroupID); //var groupmemberList = db.GroupMembers.Where(m => m.MemberIDOwner == MemberID && m.GroupID == gro.GroupID); bool exists = db.MemberJoinProjects.Any(m => m.MemberIDOwner == MemberID && m.ProjectID == ProjectID && m.MemberIDJoin == gro.MemberID); if (exists == true) { return(RedirectToAction("CreateW", new { ProjectID, MemberID })); } else { foreach (var item in groupmemberList) { MemberJoinProject m = new MemberJoinProject() { MemberIDJoin = item.MemberIDInGroup, ProjectID = ProjectID, MemberIDOwner = MemberID, SharePerID = Share.Share }; db.MemberJoinProjects.Add(m); } db.SaveChanges(); } //db.SaveChanges(); } } db.SaveChanges(); var memberJoinProjects = db.MemberJoinProjects.Include(m => m.Member).Include(m => m.Project).Where(m => m.MemberIDOwner == MemberID && m.ProjectID == ProjectID); return(RedirectToAction("CreateW", new { ProjectID, MemberID })); }
public HttpResponseMessage Register(ApiAuthRegister data) { Env env = new Env(); SimpleJws jws = new SimpleJws(); HttpResponseMessage response = new HttpResponseMessage(); string token = data.Token; bool isSuccess = true; string messages = ""; if (token == null) // 缺乏 token { isSuccess = false; messages = "You don't have permission to access this server."; response.StatusCode = HttpStatusCode.Unauthorized; // 401 } else if (!jws.Validate(token, env.SecretKey)) // 缺乏 token { isSuccess = false; messages = "註冊連結已失效!!!"; response.StatusCode = HttpStatusCode.Unauthorized; // 401 } else if (data.Password.Length < 6 || data.Password.Length > 18) { isSuccess = false; messages = "Your password must be between 6 and 18 characters"; response.StatusCode = HttpStatusCode.BadRequest; // 400 } else { MemberSystem memberSystem = new MemberSystem(); Dictionary <string, object> jwt = jws.Decode(token); if (!jwt.ContainsKey("Email") || !jwt.ContainsKey("Gender") || !jwt.ContainsKey("Birthday")) { isSuccess = false; messages = "Invalid operation."; response.StatusCode = HttpStatusCode.BadRequest; // 400 } else { string name = jwt.ContainsKey("UserName") ? (string)jwt["UserName"] : null; DateTime now = DateTime.Now; Member member = new Member { Email = (string)jwt["Email"], Psw = ChoyPassword.Hash(data.Password, TimeConverter.ToTimestamp(now)), NickName = name, Gender = (bool)jwt["Gender"], Bday = TimeConverter.ToDateTime((long)jwt["Birthday"]), ContactEmail = (string)jwt["Email"], CreateAt = now, ProfilePic = memberSystem.GetFileBytes("\\Images\\carot.png"), ImageMimeType = "image/png", PerCode = 0, IsSuspended = false, LastLogInTime = now }; if (!memberSystem.Register(member)) { isSuccess = false; messages = "Registration failed"; response.StatusCode = HttpStatusCode.InternalServerError; // 500 } else { isSuccess = true; messages = "Registration success"; response.StatusCode = HttpStatusCode.OK; // 200 } } } var result = new { Success = isSuccess, Messages = messages }; response.Content = new StringContent(JsonConvert.SerializeObject(result)); response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); return(response); }