예제 #1
0
        /// <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"
                        };
                }
            }
        }
예제 #2
0
        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);
        }