/// <summary> /// Insert new member /// </summary> /// <param name="request"></param> /// <returns></returns> public MemberEditResponseModel CreateMember(CreateMemberRequestModel request) { if (AllowApi) if (!CheckApi(new Guid(request.ApiKey))) return new MemberEditResponseModel() { Code = "-2", Message = "Not allow this function for this API key. Please check again" }; using (var tx = new TransactionScope()) { try { var memberId = Guid.NewGuid(); request.MemberPassword = CommonLib.CreateShaHash(new[] {request.MemberPassword, memberId.ToString()}); //Upload avatar if (request.MemberAvatarContent != null) { var pos = request.MemberAvatar.LastIndexOf('.'); var fileextention = pos == -1 ? ".jpg" : request.MemberAvatar.Substring(pos).ToLower(); var filename = memberId + fileextention; var result = CommonLib.UploadFile(request.MemberAvatarContent, filename, CommonLib.TypePath.Avatar); if (!result) return new MemberEditResponseModel() {Code = "-1", Message = "Upload avatar fail"}; } var newMember = new MemberUser() { MemberId = memberId, MemberUserName = request.MemberUserName, MemberPassword = request.MemberPassword, MemberFirstName = request.MemberFirstName, MemberLastName = request.MemberLastName, MemberCountry = request.MemberCountry, MemberGender = request.MemberGender, MemberEmail = request.MemberEmail, MemberFacebookId = request.MemberFacebookId, MemberBirthday = request.MemberBirthday, MemberAvatar = request.MemberAvatar, MemberLocked = 1, MemberJoinDate = DateTime.Now, MemberAllowViewAbout = 1, MemberAllowViewAddress = 1, MemberAllowViewBithday = 1, MemberAllowViewEmail = 1, MemberAllowViewFavorite = 1 }; DataContext.MemberUsers.Add(newMember); //Save to database var i = DataContext.SaveChanges(); tx.Complete(); return new MemberEditResponseModel() { Code = i.ToString(CultureInfo.InvariantCulture) }; } catch (Exception ex) { tx.Dispose(); if (ex.InnerException != null) { if ( ex.InnerException.InnerException.Message.Contains( "Violation of UNIQUE KEY constraint 'uq_member_user_name'")) return new MemberEditResponseModel() { Message = "Username " + request.MemberUserName + " belongs to an existing account. ", Code = "-1" }; if ( ex.InnerException.InnerException.Message.Contains( "Violation of UNIQUE KEY constraint 'uc_MemberEmail'")) return new MemberEditResponseModel() { Message = "Email " + request.MemberEmail + " belongs to an existing account. ", Code = "-1" }; } return new MemberEditResponseModel() { Message = ex.Message, Code = "-1" }; } } }
public ActionResult Insert(CreateMemberRequestModel model) { var result = MemberRepository.CreateMember(model); if (result.Code == "1") { return RedirectToAction("Edit","Member",new {id = model.MemberUserName}); } ModelState.AddModelError("",result.Message); return View(model); }