Exemple #1
0
        public async Task UpdateMemberAsync(MemberDto data)
        {
            Member        member;
            Task <Member> taskFind = Task <Member> .Run(() => _database.MemberRepository.GetById(data.Id));

            try
            {
                taskFind.Wait(360000);
                if (taskFind.IsCompleted)
                {
                    member = taskFind.Result;
                    if (member != null)
                    {
                        member.Id              = data.Id;
                        member.Owner           = data.Owner;
                        member.PlotNumber      = data.PlotNumber;
                        member.PlotAddress     = data.PlotAddress;
                        member.PlotSquare      = data.PlotSquare;
                        member.OwnerAddress    = data.OwnerAddress;
                        member.Addition        = data.Addition;
                        member.CompanionshipId = data.CompanionshipId;
                        _database.MemberRepository.Update(member);
                        await _database.SaveAsync();
                    }
                }
            }
            catch (AggregateException ae)
            {
            }
        }
Exemple #2
0
        public async Task <AuthenticateResponse> Authenticate(string email, string password)
        {
            if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(password))
            {
                return(null);
            }
            var member = await _memberRepository.GetAsync(x => x.Email == email && x.Password == password);

            if (member == null)
            {
                return(null);
            }

            MemberDto memberDto = new MemberDto
            {
                Id            = member.Id,
                FirstName     = member.FirstName,
                LastName      = member.LastName,
                Email         = member.Email,
                ContactNumber = member.ContactNumber
            };

            // authentication successful so generate jwt token
            var token = generateJwtToken(memberDto);

            return(new AuthenticateResponse(memberDto, token));
        }
        public IMember BuildEntity(MemberDto dto)
        {
            var member = new Member(
                dto.ContentVersionDto.ContentDto.NodeDto.Text,
                dto.Email, dto.LoginName, dto.Password, _contentType)
            {
                Id         = _id,
                Key        = dto.ContentVersionDto.ContentDto.NodeDto.UniqueId,
                Path       = dto.ContentVersionDto.ContentDto.NodeDto.Path,
                CreatorId  = dto.ContentVersionDto.ContentDto.NodeDto.UserId.Value,
                Level      = dto.ContentVersionDto.ContentDto.NodeDto.Level,
                ParentId   = dto.ContentVersionDto.ContentDto.NodeDto.ParentId,
                SortOrder  = dto.ContentVersionDto.ContentDto.NodeDto.SortOrder,
                Trashed    = dto.ContentVersionDto.ContentDto.NodeDto.Trashed,
                CreateDate = dto.ContentVersionDto.ContentDto.NodeDto.CreateDate,
                UpdateDate = dto.ContentVersionDto.VersionDate,
                Version    = dto.ContentVersionDto.VersionId
            };

            member.ProviderUserKey = member.Key;
            //on initial construction we don't want to have dirty properties tracked
            // http://issues.umbraco.org/issue/U4-1946
            member.ResetDirtyProperties(false);
            return(member);
        }
Exemple #4
0
        public ResultDto UpdateFamily(MemberDto memberDto)
        {
            ResultDto resultDto = new ResultDto();
            string    obectName = "MemberFamilyDetails";

            // ObjectParameter paramID = new ObjectParameter("MemberID",memberDto.MemberID);

            try
            {
                _dbContext.uspMemberFamilyDetailsUpdate(memberDto.MemberID, memberDto.NomineeName, memberDto.NomineeRelationship, memberDto.ParentGuardianName, memberDto.ParentGuardianRelationship, memberDto.SocialCategory
                                                        , memberDto.MonthlyIncome, memberDto.EarningMembersInFamily, memberDto.NonEarningMembersInFamily, memberDto.IncomeFrequency, memberDto.InvestmentSize, memberDto.AssetsInNameOfMember, memberDto.UserID);
                resultDto.ObjectId = (int)memberDto.MemberID;

                if (resultDto.ObjectId > 0)
                {
                    resultDto.Message = string.Format("{0} details saved successfully with code : {1}", obectName, memberDto.MemberCode);
                }
                else if (resultDto.ObjectId == -1)
                {
                    resultDto.Message = string.Format("Error occured while generating {0} code", obectName);
                }
                else
                {
                    resultDto.Message = string.Format("Error occured while saving {0} details", obectName);
                }
            }
            catch (Exception)
            {
                resultDto.Message  = string.Format("Service layer error occured while saving the {0} details", obectName);
                resultDto.ObjectId = -98;
            }

            return(resultDto);
        }
        public async Task <JsonResult> Login(string mobile, string password)
        {
            //验证
            var member = new MemberDto {
                Id = 1, Name = "测试"
            };
            //生成Token
            var tokenVersion = DateTime.Now.Ticks.ToString();

            var claims = new List <Claim>()
            {
                new Claim(ClaimTypes.Version, tokenVersion)
                , new Claim(ClaimTypes.NameIdentifier, member.Id.ToString())
                , new Claim(ClaimTypes.Name, member.Name)
                , new Claim(ClaimTypes.Role, ((int)MemberRole.Default).ToString())
            };

            var token = _jwtProvider.CreateToken(claims);

            var loginMember = new LoginMember {
                Id   = member.Id,
                Name = member.Name
            };

            //如果当前已登陆,则退出当前登录
            DoLogout();

            _cacheService.Add(string.Format(CacheKeyDefinition.ApiMemberToken, member.Id, tokenVersion), loginMember, TimeSpan.FromMinutes(_jwtConfig.ExpiredMinutes));

            return(Json(token));
        }
        public async Task <IActionResult> Bind(MobileBindVerifierPostData postData)
        {
            try
            {
                bool isValidVerifierCode = await this.verifierService.IsValidVerifierCode(VerifierType.MobileBind.ToString(), postData.Email, postData.VerifierCode);

                if (!isValidVerifierCode)
                {
                    return(BadRequest("驗證碼驗證失敗."));
                }
                string    memberID  = this.HttpContext.Session.GetObject <string>(CommonFlagHelper.CommonFlag.SessionFlag.MemberID);
                MemberDto memberDto = new MemberDto()
                {
                    MemberID       = memberID,
                    Mobile         = postData.Mobile,
                    MoblieBindType = (int)MoblieBindType.Bind
                };
                ResponseResultDto responseResult = await this.memberService.EditData(memberDto);

                if (responseResult.Ok)
                {
                    return(Ok("綁定行動電話成功."));
                }

                return(BadRequest(responseResult.Data));
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Reset Password Error >>> Email:{postData.Email} VerifierCode:{postData.VerifierCode}\n{ex}");
                return(BadRequest("會員綁定行動電話發生錯誤."));
            }
        }
        public async Task <IActionResult> ModifyMemberInfoAsync(IFormCollection forms)
        {
            #region 参数验证
            Check.IfNullOrZero(forms);
            #endregion
            var userContext = await GetUserContextAsync();

            var memberDto = new MemberDto
            {
                Id             = Int32.Parse(forms["id"]),
                IconUrl        = forms["val_icon"],
                Name           = forms["val_name"],
                Width          = Int32.Parse(forms["val_width"]),
                Height         = Int32.Parse(forms["val_height"]),
                IsResize       = Int32.Parse(forms["val_isresize"]) == 1,
                IsOpenMax      = Int32.Parse(forms["val_isopenmax"]) == 1,
                IsFlash        = Int32.Parse(forms["val_isflash"]) == 1,
                MemberType     = EnumExtensions.ToEnum <MemberType>(forms["membertype"]),
                IsIconByUpload = Int32.Parse(forms["isIconByUpload"]) == 1
            };

            await _deskServices.ModifyMemberInfoAsync(userContext.Id, memberDto);

            return(Json(new ResponseSimple
            {
                IsSuccess = true,
                Message = "修改桌面应用信息成功"
            }));
        }
        public IActionResult add(MemberDto memberDto, IFormFile file)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (file != null)
                    {
                        memberDto.image_url = _fileHelper.saveImageAndGetFileName(file, memberDto.full_name);
                    }
                    _membersService.save(memberDto);
                    AlertHelper.setMessage(this, "Member Saved Successfully", messageType.success);
                    return(RedirectToAction("index"));
                }
            }
            catch (Exception ex)
            {
                AlertHelper.setMessage(this, ex.Message, messageType.error);
            }
            var fiscalYearList  = _fiscalYearRepository.getQueryable().ToList();
            var designationList = _designationRepository.getQueryable().ToList();

            ViewBag.designations = new SelectList(designationList, "Designation_id", "name");
            ViewBag.fiscalYears  = new SelectList(fiscalYearList, "fiscal_year_id", "name");
            return(View(memberDto));
        }
        public async Task <IActionResult> Edit(long?id)
        {
            //取得会员类型列表
            ViewBag.MemberTypeList = await _memberTypeService.GetListAsync(null, null);

            if (id.HasValue)
            {
                //编辑
                var model = await _service.GetByIdAsync(id.Value);

                if (model == null)
                {
                    throw new VinoDataNotFoundException("无法取得会员数据!");
                }
                model.Password   = "******";
                ViewData["Mode"] = "Edit";
                return(View(model));
            }
            else
            {
                //新增
                MemberDto dto = new MemberDto();
                dto.IsEnable     = true;
                ViewData["Mode"] = "Add";
                return(View(dto));
            }
        }
        public void update(MemberDto member_dto)
        {
            try
            {
                using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required))
                {
                    Member member = _membersRepository.getById(member_dto.member_id);
                    if (member == null)
                    {
                        throw new ItemNotFoundException($"Member with ID {member_dto.member_id} doesnot Exit.");
                    }
                    string oldImage = member.image_url;
                    if (!string.IsNullOrWhiteSpace(member_dto.image_url))
                    {
                        if (!string.IsNullOrWhiteSpace(oldImage))
                        {
                            deleteImage(oldImage);
                        }
                    }
                    _membersMaker.copy(ref member, member_dto);
                    _membersRepository.update(member);

                    tx.Complete();
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #11
0
        /// <summary>
        /// Builds a dto from an IMember item.
        /// </summary>
        public static MemberDto BuildDto(IMember entity)
        {
            var contentDto = BuildContentDto(entity, Cms.Core.Constants.ObjectTypes.Member);

            var dto = new MemberDto
            {
                Email                  = entity.Email,
                LoginName              = entity.Username,
                NodeId                 = entity.Id,
                Password               = entity.RawPasswordValue,
                SecurityStampToken     = entity.SecurityStamp,
                EmailConfirmedDate     = entity.EmailConfirmedDate,
                ContentDto             = contentDto,
                ContentVersionDto      = BuildContentVersionDto(entity, contentDto),
                PasswordConfig         = entity.PasswordConfiguration,
                FailedPasswordAttempts = entity.FailedPasswordAttempts,
                IsApproved             = entity.IsApproved,
                IsLockedOut            = entity.IsLockedOut,
                LastLockoutDate        = entity.LastLockoutDate,
                LastLoginDate          = entity.LastLoginDate,
                LastPasswordChangeDate = entity.LastPasswordChangeDate,
            };

            return(dto);
        }
        public static MemberServiceModel ToServiceModel(this MemberDto memberDto)
        {
            var serviceModel = new MemberServiceModel();

            serviceModel.InjectFrom(memberDto);
            return(serviceModel);
        }
Exemple #13
0
        public async Task <object> PutPhone([Required] int id, [FromBody] PhoneViewModel model)
        {
            MessageBase2 result = new MessageBase2();

            if (await _memberService.ExistAsync("phone", model.Phone) > 0)
            {
                result.Success  = Permanent.FAILED;
                result.Error    = (int)StatusCodeEnum.INVALID_REQUEST;
                result.ErrorMsg = "手机号已存在";
            }
            else
            {
                MemberDto dto = new MemberDto()
                {
                    Id       = id,
                    PhoneMob = model.Phone
                };
                await _memberService.UpdateAsync(dto);

                result.Success = Permanent.SUCCESS;
            }


            return(result);
        }
Exemple #14
0
        public IActionResult Post([FromBody] MemberDto member)
        {
            try
            {
                _memberManager.AddMember(member);

                ResponseDto response = new ResponseDto()
                {
                    Message    = "Success",
                    StatusCode = System.Net.HttpStatusCode.OK
                };

                return(Ok(response));
            }
            catch (Exception ex)
            {
                ResponseDto response = new ResponseDto()
                {
                    Message    = ex.Message,
                    StatusCode = System.Net.HttpStatusCode.BadRequest
                };

                return(BadRequest(response));
            }
        }
Exemple #15
0
        public async Task HandleMemberSubscriptionAsync_UnsubscribedSubscriber_ShouldBeResubscribedWithStatusPending()
        {
            //arrange
            var nullLogger             = new NullLogger <SubscriberService>();
            var fakeRepository         = new FakeMailchimpRepository();
            var subscriberService      = new SubscriberService(nullLogger, fakeRepository);
            var unsubscribedSubscriber = new NewSubscriberDto()
            {
                Email  = "*****@*****.**",
                Name   = "Unsubscribed",
                Source = "UnitTest"
            };

            //assume
            var assumedMember = await fakeRepository.GetMemberAsync(unsubscribedSubscriber.Email);

            Assume.That(
                assumedMember?.Status ==
                "unsubscribed", "Missing unsubscribed member in the collection");

            //act
            await subscriberService.HandleMemberSubscriptionAsync(unsubscribedSubscriber);

            MemberDto receivedMember = await fakeRepository.GetMemberAsync(unsubscribedSubscriber.Email);

            //assert
            Assert.Equal(unsubscribedSubscriber.Email, receivedMember.EmailAddress);
            Assert.Equal("pending", receivedMember.Status);
        }
Exemple #16
0
        /// <summary>
        /// 會員註冊
        /// </summary>
        /// <param name="memberDto">memberDto</param>
        /// <param name="isVerifyPassword">isVerifyPassword</param>
        /// <returns>string</returns>
        public async Task <string> Register(MemberDto memberDto, bool isVerifyPassword)
        {
            try
            {
                string verifyMemberRegisterResult = await this.VerifyMemberRegister(memberDto, isVerifyPassword);

                if (!string.IsNullOrEmpty(verifyMemberRegisterResult))
                {
                    return(verifyMemberRegisterResult);
                }

                MemberData memberData = this.CreateMemberData(memberDto);
                bool       isSuccess  = await this.memberRepository.CreateMemberData(memberData);

                if (!isSuccess)
                {
                    return("會員註冊失敗.");
                }

                return(string.Empty);
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Register Error >>> Data:{JsonConvert.SerializeObject(memberDto)}\n{ex}");
                return("會員註冊發生錯誤.");
            }
        }
Exemple #17
0
        private static void AddMember()
        {
            var member = new MemberDto
            {
                Name           = "Steve",
                PassportNumber = 123459,
                PassportSeries = 1234,
                DateOfBirth    = new DateTime(1991, 1, 1),
                IsInBlacklist  = false
            };

            var postTask = client.PostAsJsonAsync <MemberDto>("api/members", member);

            postTask.Wait();

            var result = postTask.Result;

            if (result.IsSuccessStatusCode)
            {
                var readTask = result.Content.ReadAsAsync <MemberDto>();
                readTask.Wait();

                var insertedMembers = readTask.Result;

                Console.WriteLine("Member {0} inserted with id: {1}", insertedMembers.Name, member.Id);
            }
            else
            {
                Console.WriteLine(result.StatusCode);
            }
        }
Exemple #18
0
        /// <summary>
        /// 驗證會員註冊資料
        /// </summary>
        /// <param name="memberDto">memberDto</param>
        /// <param name="isVerifyPassword">isVerifyPassword</param>
        /// <returns>string</returns>
        private async Task <string> VerifyMemberRegister(MemberDto memberDto, bool isVerifyPassword)
        {
            if (string.IsNullOrEmpty(memberDto.Email))
            {
                return("信箱無效.");
            }

            if (!this.IsValidEmail(memberDto.Email))
            {
                return("信箱格式錯誤.");
            }

            if (isVerifyPassword)
            {
                if (string.IsNullOrEmpty(memberDto.Password))
                {
                    return("密碼無效.");
                }

                if (!this.IsValidPassword(memberDto.Password))
                {
                    return("密碼格式錯誤.");
                }
            }

            bool emailHasRegister = await this.memberRepository.GetMemberDataByEmail(memberDto.Email) != null;

            if (emailHasRegister)
            {
                return("此信箱已經被註冊.");
            }

            return(string.Empty);
        }
Exemple #19
0
        public IHttpActionResult PostMemberByClan(int gameid, int clanid, [FromBody] MemberDto memberDto)
        {
            dynamic Response = new ExpandoObject();

            try
            {
                if (!ModelState.IsValid)
                {
                    Response.Status  = ConstantValues.ResponseStatus.ERROR;
                    Response.Message = ConstantValues.ErrorMessage.BAD_REQUEST;
                    return(Content(HttpStatusCode.BadRequest, Response));
                }

                var member = Mapper.Map <MemberDto, Member>(memberDto);
                member.clanId = clanid;
                _context.Members.Add(member);
                _context.SaveChanges();

                memberDto.id    = member.id;
                Response.Status = ConstantValues.ResponseStatus.OK;
                Response.Member = memberDto;

                return(Created(new Uri(Request.RequestUri + "/" + memberDto.id), Response));
            }
            catch (Exception e)
            {
                Response.Status  = ConstantValues.ResponseStatus.ERROR;
                Response.Message = ConstantValues.ErrorMessage.INTERNAL_SERVER_ERROR;
                return(Content(HttpStatusCode.InternalServerError, Response));
            }
        }
Exemple #20
0
        /// <summary>
        /// 會員編輯
        /// </summary>
        /// <param name="memberDto">memberDto</param>
        /// <returns>string</returns>
        public async Task <string> EditData(MemberDto memberDto)
        {
            try
            {
                MemberData memberData = await this.memberRepository.GetMemberDataByMemberID(memberDto.MemberID);

                if (memberData == null)
                {
                    return("無會員資料.");
                }

                string updateMemberDataHandlerResult = this.UpdateMemberDataHandler(memberDto, memberData, true);
                if (!string.IsNullOrEmpty(updateMemberDataHandlerResult))
                {
                    return(updateMemberDataHandlerResult);
                }

                bool updateMemebrDataResult = await this.memberRepository.UpdateMemberData(memberData);

                if (!updateMemebrDataResult)
                {
                    return("會員資料更新失敗.");
                }

                return(string.Empty);
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Edit Data Error >>> Data:{JsonConvert.SerializeObject(memberDto)}\n{ex}");
                return("會員編輯發生錯誤.");
            }
        }
Exemple #21
0
        public ResultDto UpdateAccountHead(MemberDto memberDto)
        {
            ResultDto resultDto = new ResultDto();
            string    obectName = "MemberAccountHead";

            try
            {
                _dbContext.uspMemberAccountHeadUpdate(memberDto.MemberID, memberDto.AccountHeadID);
                resultDto.ObjectId = (int)memberDto.MemberID;
                if (resultDto.ObjectId > 0)
                {
                    resultDto.Message = string.Format("{0} details saved successfully with code : {1}", obectName, memberDto.MemberCode);
                }
                else if (resultDto.ObjectId == -1)
                {
                    resultDto.Message = string.Format("Error occured while generating {0} code", obectName);
                }
                else
                {
                    resultDto.Message = string.Format("Error occured while saving {0} details", obectName);
                }
            }
            catch (Exception)
            {
                resultDto.Message  = string.Format("Service layer error occured while saving the {0} details", obectName);
                resultDto.ObjectId = -98;
            }

            return(resultDto);
        }
Exemple #22
0
        /// <summary>
        /// 搜尋會員
        /// </summary>
        /// <param name="memberDto">memberDto</param>
        /// <returns>Tuple(MemberDto, string)</returns>
        public async Task <Tuple <MemberDto, string> > SearchMember(MemberDto searchMemberDto)
        {
            try
            {
                MemberData memberData = null;
                if (!string.IsNullOrEmpty(searchMemberDto.MemberID))
                {
                    memberData = await this.memberRepository.GetMemberDataByMemberID(searchMemberDto.MemberID);
                }
                else if (!string.IsNullOrEmpty(searchMemberDto.Email))
                {
                    memberData = await this.memberRepository.GetMemberDataByEmail(searchMemberDto.Email);
                }
                else
                {
                    return(Tuple.Create <MemberDto, string>(null, "查詢參數無效."));
                }

                if (memberData == null)
                {
                    return(Tuple.Create <MemberDto, string>(null, "無會員資料."));
                }

                MemberDto memberDto = this.mapper.Map <MemberDto>(memberData);
                IEnumerable <RideData> rideDataList = await this.rideRepository.GetRideDataList(memberData.MemberID);

                memberDto.RideDtoList = this.mapper.Map <IEnumerable <RideDto> >(rideDataList);
                return(Tuple.Create(memberDto, string.Empty));
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Search Member Error >>> MemberID:{searchMemberDto.MemberID} Email:{searchMemberDto.Email}\n{ex}");
                return(Tuple.Create <MemberDto, string>(null, "搜尋會員發生錯誤."));
            }
        }
Exemple #23
0
        public async Task <ActionResult <MemberDto> > AddMember([FromBody] MemberDto memberDto)
        {
            var authorizedUser = this.GetAuthorizedUser();

            return(CreatedAtAction(nameof(AddMember),
                                   await _memberService.AddMemberAsync(memberDto, authorizedUser)));
        }
Exemple #24
0
        /// <summary>
        /// 會員登入
        /// </summary>
        /// <param name="memberDto">memberDto</param>
        /// <returns>Tuple(string, string)</returns>
        public async Task <Tuple <string, string> > Login(MemberDto memberDto)
        {
            try
            {
                if (string.IsNullOrEmpty(memberDto.Email) || string.IsNullOrEmpty(memberDto.Password))
                {
                    return(Tuple.Create(string.Empty, "信箱或密碼無效."));
                }

                MemberData memberData = await this.memberRepository.GetMemberDataByEmail(memberDto.Email);

                if (memberData == null)
                {
                    return(Tuple.Create(string.Empty, "無法根據信箱查詢到相關會員."));
                }

                if (string.IsNullOrEmpty(memberData.Password))
                {
                    return(Tuple.Create(string.Empty, "密碼驗證失敗."));
                }

                string dbPassword = Utility.DecryptAES(memberData.Password);
                if (!dbPassword.Equals(memberDto.Password))
                {
                    return(Tuple.Create(string.Empty, "密碼驗證失敗."));
                }

                return(Tuple.Create(memberData.MemberID, string.Empty));
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Login Error >>> Email:{memberDto.Email} Password:{memberDto.Password}\n{ex}");
                return(Tuple.Create(string.Empty, "會員登入發生錯誤."));
            }
        }
        public void AddMember(MemberDto memberDto)
        {
            string shortUrl = UrlShortner.ShortenUrl(memberDto.Url);

            Member member = new Member()
            {
                Id         = Guid.NewGuid().ToString(),
                Name       = memberDto.Name,
                WebsiteUrl = memberDto.Url,
                ShortUrl   = shortUrl,
                Headings   = new List <Heading>()
            };
            var content = _webScrappingHelper.GetTextofHeadingTags(memberDto.Url);

            foreach (var item in content)
            {
                Heading heading = new Heading()
                {
                    Content     = item.Content,
                    HeadingType = item.HeadingType,
                    Id          = Guid.NewGuid().ToString(),
                    MemberId    = member.Id
                };

                member.Headings.Add(heading);
            }

            _memberDataProvider.AddMember(member);
        }
Exemple #26
0
        public async Task HandleMemberSubscriptionAsync_AlreadySubscribed_ShouldBeNotChanged()
        {
            //arrange
            var nullLogger           = new NullLogger <SubscriberService>();
            var fakeRepository       = new FakeMailchimpRepository();
            var subscriberService    = new SubscriberService(nullLogger, fakeRepository);
            var subscribedSubscriber = new NewSubscriberDto()
            {
                Email  = "*****@*****.**",
                Name   = "Subscribed",
                Source = "UnitTest"
            };

            //assume
            var assumedMember = await fakeRepository.GetMemberAsync(subscribedSubscriber.Email);

            Assume.That(
                assumedMember?.Status ==
                "subscribed", "Missing subscribed member in the collection");

            //act
            await subscriberService.HandleMemberSubscriptionAsync(subscribedSubscriber);

            MemberDto receivedMember = await fakeRepository.GetMemberAsync(subscribedSubscriber.Email);

            var memberChanges = fakeRepository.Members["*****@*****.**"];

            //assert
            Assert.Single(memberChanges);
            Assert.Equal(subscribedSubscriber.Email, receivedMember.EmailAddress);
            Assert.Equal("subscribed", receivedMember.Status);
        }
Exemple #27
0
        public async Task <IHttpActionResult> Post([FromBody] MemberUi member)
        {
            if (!ModelState.IsValid)
            {
                return(InternalServerError());
            }

            MemberDto memberDto = new MemberDto();

            memberDto.Owner           = member.Owner ?? "";
            memberDto.PlotNumber      = member.PlotNumber ?? "";
            memberDto.PlotSquare      = member.PlotSquare ?? "";
            memberDto.PlotAddress     = member.PlotAddress ?? "";
            memberDto.OwnerAddress    = member.OwnerAddress ?? "";
            memberDto.CompanionshipId = member.CompanionshipId;
            memberDto.Addition        = member.Addition ?? "";
            try
            {
                await _memberService.WriteMemberAsync(memberDto);
            }
            catch (Exception e)
            {
            }
            return(Ok(member));
        }
Exemple #28
0
        public async Task HandleMemberSubscriptionAsync_Pending_ShouldBeChangedByEmailsServiceToUnsubscribedThanPending()
        {
            //arrange
            var nullLogger        = new NullLogger <SubscriberService>();
            var fakeRepository    = new FakeMailchimpRepository();
            var subscriberService = new SubscriberService(nullLogger, fakeRepository);
            var newSubscriber     = new NewSubscriberDto()
            {
                Email  = "*****@*****.**",
                Name   = "Marek",
                Source = "UnitTest"
            };

            //act
            await subscriberService.HandleMemberSubscriptionAsync(newSubscriber);

            MemberDto receivedMember = await fakeRepository.GetMemberAsync(newSubscriber.Email);

            var memberHistory = fakeRepository.Members["*****@*****.**"];

            //assert
            Assert.Equal(3, memberHistory.Count);
            Assert.Equal(newSubscriber.Email, receivedMember.EmailAddress);
            Assert.Equal("unsubscribed", memberHistory.ElementAt(1).Status);
            Assert.Equal("pending", receivedMember.Status);
        }
Exemple #29
0
        public Result Edit(int id, MemberDto dto)
        {
            dto.Id = id;

            var validator = new MemberValidator(_memberRepository);
            var result    = validator.ValidateResult(dto);

            if (!result.Success)
            {
                return(result);
            }

            var entity = _memberRepository.AsNoTracking
                         .FirstOrDefault(s => s.Id == dto.Id);

            if (entity == null)
            {
                return(new Result().SetBlankRedirect());
            }

            Mapper.Map <Member>(dto, entity);

            if (!string.IsNullOrEmpty(dto.Password))
            {
                entity.Salt     = SecurityHelper.GenerateSalt();
                entity.Password = SecurityHelper.GenerateHash(dto.Password, entity.Salt);
            }

            _memberRepository.Update(entity);

            _unitOfWork.Commit();
            MemberCacheManager.ClearCache();

            return(result.SetSuccess(Messages.RecordSaved));
        }
Exemple #30
0
        public async Task <ActionResult> ApprovePhoto(PhotoForApprovalDto photo)
        {
            Photo ph = await _unitOfWork.PhotoRepository.GetPhotoById(photo.Id);

            if (ph == null)
            {
                return(NotFound("Photo not found"));
            }
            ph.IsApproved = photo.IsApproved;
            MemberDto user = await _unitOfWork.UserRepository.GetUserByPhotoIDAsync(photo.Id);

            if (user == null)
            {
                return(NotFound("User not found"));
            }
            if (string.IsNullOrEmpty(user.PhotoUrl))
            {
                ph.IsMain = true;
            }

            _unitOfWork.PhotoRepository.Update(ph);
            if (await _unitOfWork.Complete())
            {
                return(NoContent());
            }

            return(BadRequest("Error while approving photo!"));
        }