示例#1
0
        public ActionResult Edit([Bind(Include = "MemberID,MemberSubscriptionTypeID,FirstName,LastName,IdentityType,EmailAddress,TelephoneHome,TelephoneOffice,TelephoneMobile,CountryID,StateID,Gender,Ethnicity,DateOfBirth,ActiveIndicator,RenewalDate,AddressID,DateInserted,DateUpdated,USR")] Member member)
        {
            MemberValidator validator = new MemberValidator();

            if (ModelState.IsValid && validator.Validate(member).IsValid)
            {
                db.Entry(member).State = EntityState.Modified;

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ValidationResult          results  = validator.Validate(member);
            IList <ValidationFailure> failures = results.Errors;
            StringBuilder             sb       = new StringBuilder();

            foreach (var e in results.Errors)
            {
                ModelState.AddModelError(e.PropertyName + "Error", e.ErrorMessage);
                sb.AppendLine(e.ErrorMessage);
            }

            ViewBag.CountryID = new SelectList(db.Countries, "CountryID", "CountryName", member.CountryID);
            ViewBag.StateID   = new SelectList(db.CountryStates, "StateID", "StateName", member.StateID);
            ViewBag.AddressID = new SelectList(db.Addresses, "AddressID", "AddressType", member.AddressID);
            ViewBag.MemberSubscriptionTypeID = new SelectList(db.MemberSubscriptionTypes, "MemberSubscriptionTypeID", "MemberSubscriptionTypeCode", member.MemberSubscriptionTypeID);
            return(View(member));
        }
示例#2
0
        public async Task <int> Create(Member newMember)
        {
            if (newMember is null)
            {
                throw new ArgumentNullException(nameof(newMember));
            }

            var validator        = new MemberValidator();
            var validationResult = await validator.ValidateAsync(newMember);

            if (!validationResult.IsValid)
            {
                var errors = validationResult.ToString(", ");
                throw new InvalidOperationException(errors);
            }

            var existedMember = await _membersRepository.Get(newMember.YouTubeUserId);

            if (existedMember != null)
            {
                var updatedMember = _mapper.Map(newMember, existedMember);
                updatedMember.Id = existedMember.Id;

                await _membersRepository.Update(updatedMember);

                return(existedMember.Id);
            }

            return(await _membersRepository.Add(newMember));
        }
示例#3
0
        public async Task <int> Create(Member member)
        {
            var validator       = new MemberValidator();
            var validatorResult = await validator.ValidateAsync(member);

            if (!validatorResult.IsValid)
            {
                var errros = validatorResult.ToString(", ");

                throw new InvalidOperationException(errros);
            }

            var exisredMember = await _membersRepository.Get(member.YouTubeAccountId);

            if (exisredMember is not null)
            {
                throw new InvalidOperationException("Member already exists");
            }

            var memberId = await _membersRepository.Add(member);

            if (memberId != default)
            {
                return(memberId);
            }
            else
            {
                return(default);
示例#4
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));
        }
示例#5
0
 public void SetUp()
 {
     _memberRepository  = new Mock <IJsonRepository <Member> >();
     _memberValidator   = new MemberValidator();
     _subscriberService = new SubscriberService();
     _eventPublisher    = new EventPublisher(_subscriberService);
     _memberService     = new MemberService(_memberRepository.Object, _memberValidator, _eventPublisher);
 }
示例#6
0
 public HomeController(ILogger <HomeController> logger,
                       ICacheManager <MemoryCacheManager> cacheManager, ICategoryService categoryService, IMemoryCache memoryCache)
 {
     _logger          = logger;
     _memberValidator = new MemberValidator("#EditForm");
     _cacheManager    = cacheManager;
     _categoryService = categoryService;
     _memoryCache     = memoryCache;
 }
示例#7
0
        public void Should_AddRule_SingleRule()
        {
            var memberValidator = new MemberValidator();

            var rule = new ValidRule<int>(c => true);
            memberValidator.AddRule(rule);

            Assert.Single(memberValidator.Rules);
            Assert.Same(rule, memberValidator.Rules.Single());
        }
        public IActionResult AddMember([FromBody] Member member)
        {
            var validator = new MemberValidator();

            if (validator.Validate(member).IsValid)
            {
                _memberService.AddMember(member);
                return(Ok());
            }
            return(BadRequest());
        }
        public IActionResult UpdateMember([FromBody] Member member, int id)
        {
            var validator = new MemberValidator();

            if (validator.Validate(member).IsValid)
            {
                member.Id = id;
                _memberService.UpdateMember(member);
                return(Ok());
            }
            return(BadRequest());
        }
        public void SetUp()
        {
            _memberRepository  = new Mock <IJsonRepository <Member> >();
            _accountRepository = new Mock <IJsonRepository <Account> >();
            _memberValidator   = new MemberValidator();

            _subscriberService  = new SubscriberService();
            _eventPublisher     = new EventPublisher(_subscriberService);
            _memberService      = new MemberService(_memberRepository.Object, _memberValidator, _eventPublisher);
            _accountService     = new AccountService(_accountRepository.Object, _memberRepository.Object);
            _transactionService = new TransactionService(_accountService, _memberService);
        }
示例#11
0
        public async Task <IActionResult> UpdateMember(JObject objData)
        {
            dynamic jsonData = objData;

            StringBuilder sb = new StringBuilder();

            try
            {
                JObject identityCard = jsonData.IdentityCard;
                JObject member       = jsonData.Member;


                var memberM = member.ToObject <Member>();



                var validatorm = new MemberValidator();
                var resultv    = await validatorm.ValidateAsync(memberM);

                if (resultv != null)
                {
                    sb.Append(string.Join(",", resultv));
                }

                var identityCardM = identityCard.ToObject <IdentityCard>();
                var validatoric   = new IdentityCardValidator();
                var result        = await validatoric.ValidateAsync(identityCardM);

                if (result != null)
                {
                    sb.Append(string.Join(",", result));
                }

                if (sb.Length > 0)
                {
                    return(BadRequest("Errors: " + sb.ToString()));
                }

                await _discoRepository.UpdateMember(memberM, identityCardM);

                return(Ok("Member updated"));
            }
            catch (Exception ex)
            {
                //log Exception
                return(BadRequest());
            }
        }
示例#12
0
        public ActionResult Create([Bind(Include = "ASPUserId,MemberID,MemberSubscriptionTypeID,FirstName, LastName,IdentityType,EmailAddress,TelephoneHome,TelephoneOffice,TelephoneMobile,CountryID,StateID,Gender,Ethnicity,DateOfBirth,ActiveIndicator,RenewalDate,AddressID,DateInserted,DateUpdated,USR")] Member member)
        {
            MemberValidator validator = new MemberValidator();

            if (ModelState.IsValid && validator.Validate(member).IsValid)
            {
                member.AddressID       = -1;
                member.DateInserted    = DateTime.Today;
                member.DateUpdated     = DateTime.Today;
                member.ASPUserId       = User.Identity.GetUserId();
                member.USR             = User.Identity.GetUserName();
                member.ActiveIndicator = true;
                db.Members.Add(member);
                try
                {
                    db.SaveChanges();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException e)
                {
                    foreach (var eve in e.EntityValidationErrors)
                    {
                        Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                          eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            System.Diagnostics.Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                                               ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                }

                return(RedirectToAction("Index", "Home"));
            }
            ValidationResult          results  = validator.Validate(member);
            IList <ValidationFailure> failures = results.Errors;
            StringBuilder             sb       = new StringBuilder();

            foreach (var e in results.Errors)
            {
                ModelState.AddModelError(e.PropertyName, e.ErrorMessage);
                ModelState.AddModelError(e.PropertyName + "Error", e.ErrorMessage);
                sb.AppendLine(e.ErrorMessage);
            }
            ViewBag.CountryID = new SelectList(db.Countries, "CountryID", "CountryName", member.CountryID);
            ViewBag.StateID   = new SelectList(db.CountryStates, "StateID", "StateName", member.StateID);
            ViewBag.MemberSubscriptionTypeID = new SelectList(db.MemberSubscriptionTypes, "MemberSubscriptionTypeID", "MemberSubscriptionTypeCode", member.MemberSubscriptionTypeID);
            return(View(member));
        }
示例#13
0
        public async Task <MemberDto> Handle(EditMemberCommand request, CancellationToken cancellationToken)
        {
            var memberEntity = await _dbContext
                               .Members
                               .SingleOrDefaultAsync(m => m.MemberId == request.MemberId, cancellationToken);

            if (memberEntity is null)
            {
                throw new NullReferenceException($"Member [memberId: {request.MemberId}] not found");
            }

            var memberBeforeChange = memberEntity;

            var editedMember = request.Member;

            editedMember.ApplyTo(memberEntity, ModelState);

            memberEntity.BirthDate = BirthDayDateCalculator.ExtractFromPesel(memberEntity.Pesel);

            var memberAfterChange = memberEntity;
            var validator         =
                new MemberValidator(_dbContext, new Tuple <Member, Member>(memberBeforeChange, memberAfterChange));
            var validationResult = await validator.ValidateAsync(memberEntity, cancellationToken);

            if (!validationResult.IsValid)
            {
                throw new ValidationException(validationResult.Errors.ToList());
            }

            _ = await _dbContext.SaveChangesAsync(cancellationToken);

            var patchedMemberEntity = await _dbContext
                                      .Members
                                      .SingleOrDefaultAsync(m => m.MemberId == request.MemberId, cancellationToken);

            if (patchedMemberEntity is null)
            {
                throw new NullReferenceException($"Failed to fetch patched membership [Id: {request.MemberId}]");
            }

            _editMemberSender.EditMember(patchedMemberEntity);

            var patchedMemberDto = patchedMemberEntity.Adapt <MemberDto>();

            return(patchedMemberDto);
        }
示例#14
0
        public void Should_AddRule_MultipleRules()
        {
            var memberValidator = new MemberValidator();

            var rule1 = new ValidRule<int>(c => true);
            var rule2 = new AsRelativeRule<object>(c => true);
            var rule3 = new AsModelRule<object>();

            memberValidator.AddRule(rule1);
            memberValidator.AddRule(rule2);
            memberValidator.AddRule(rule3);

            Assert.Equal(3, memberValidator.Rules.Count);
            Assert.Same(rule1, memberValidator.Rules.ElementAt(0));
            Assert.Same(rule2, memberValidator.Rules.ElementAt(1));
            Assert.Same(rule3, memberValidator.Rules.ElementAt(2));
        }
示例#15
0
        public async Task Validate_TwoMembers(bool valid, string email1, string email2)
        {
            using (var provider = await CreateProvider())
            {
                var context = provider.GetRequiredService <IContext>();
                var access  = provider.GetRequiredService <IContextLock>();
                var worlds  = provider.GetRequiredService <IWorldRepository>();
                var entries = provider.GetRequiredService <IEntryRepository>();

                IValidator <Member> validator = new MemberValidator(entries, worlds);

                var world = new World();

                using (var handle = await access.Write())
                {
                    var one = new Member {
                        World = world,
                        Email = new EmailAddress(email1)
                    };

                    world.Members = new HashSet <Member> {
                        one
                    };

                    context.Add(one);
                    await handle.Finish();
                }

                using (await access.Read())
                {
                    var two = new Member {
                        World = world,
                        Email = new EmailAddress(email2)
                    };

                    var target = new ValidationTarget <Member>(two);
                    validator.Validate(target);
                    Assert.Equal(valid, !target.GetResult().HasErrors);
                }
            }
        }
示例#16
0
        public async Task Validate_OneMember()
        {
            using (var provider = await CreateProvider())
            {
                var access  = provider.GetRequiredService <IContextLock>();
                var worlds  = provider.GetRequiredService <IWorldRepository>();
                var entries = provider.GetRequiredService <IEntryRepository>();

                IValidator <Member> validator = new MemberValidator(entries, worlds);

                var member = new Member {
                    World = new World()
                };

                using (await access.Read())
                {
                    var target = new ValidationTarget <Member>(member);
                    validator.Validate(target);
                    Assert.False(target.GetResult().HasErrors);
                }
            }
        }
示例#17
0
        public Result Create(MemberDto dto)
        {
            var validator = new MemberValidator(_memberRepository);
            var result    = validator.ValidateResult(dto);

            if (!result.Success)
            {
                return(result);
            }
            dto.CreatedSource = (int)MemberCreatedSource.Admin;
            var entity = Mapper.Map <Member>(dto);

            entity.Salt        = SecurityHelper.GenerateSalt();
            entity.Password    = SecurityHelper.GenerateHash(dto.Password, entity.Salt);
            entity.IsActive    = true;
            entity.LastLoginAt = DateTime.Now;
            _memberRepository.Insert(entity);
            _unitOfWork.Commit();

            MemberCacheManager.ClearCache();
            result.Id = entity.Id;

            return(result.SetSuccess(Messages.RecordSaved));
        }
示例#18
0
 public FormValidationController()
 {
     _memberValidator = new MemberValidator("#EditForm");
 }
示例#19
0
		/// <summary>
		/// Creates a list of new DataTypes, creating as well a list of new Tables with all members of type as columns
		/// <para xml:lang="es">
		/// Crea una lista de tipos de datos nuevos, creando así una lista de nuevas tablas con todos los miembros de tipo como columnas
		/// </para>
		/// </summary>
		public static IEnumerable<DataType> DefaultMap(IEnumerable<Type> types)
		{
			//we will store here all types that are actually persistent
			List<DataType> persistentTypes = new List<DataType>();
			Random random = new Random();

			//map primary keys first, so we allow to foreign keys and inheritance to be correctly mapped
			foreach (Type type in types)
			{
				//skip enums and interfaces
				if (type.GetTypeInfo().IsEnum || type.GetTypeInfo().IsInterface)
				{
					continue;
				}

				//ignore types with no primary key
				var pk = GetMappableMembers(type).Where(m => DataMember.IsPrimaryKey(m));

				if (pk.Count() == 0)
				{
					continue;
				}

				DataType dtype = new DataType(type);
				AllDataTypes.Add(dtype);

				foreach (var memberInfo in pk)
				{
					//create datamember
					dtype.AddMember(memberInfo.Name);
				}

				persistentTypes.Add(dtype);
			}

			foreach (DataType dtype in persistentTypes)
			{
				//create inheritance foreign keys
				if (dtype.BaseDataType != null)
				{
					ForeignKey foreignKey = new ForeignKey();
					foreignKey.Table = dtype.Table;
					foreignKey.RemoteTable = dtype.BaseDataType.Table;
					foreignKey.Name = "FK_" + dtype.Name + "_" + dtype.BaseDataType.Name + "_" + random.Next();

					//we asume that primary keys on parent and child tables have the same number and order of related columns
					for (int i = 0; i < dtype.PrimaryKey.Count(); i++)
					{
						DataMember pk = dtype.PrimaryKey.ToArray()[i];
						DataMember basePk = dtype.BaseDataType.PrimaryKey.ToArray()[i];

						foreignKey.Columns.Add(new Tuple<Column, Column>(pk.Column, basePk.Column));
					}

					dtype.Table.ForeignKeys.Add(foreignKey);
				}

				//map non primary key members now
				foreach (var memberInfo in GetMappableMembers(dtype.InnerType).Where(m => !DataMember.IsPrimaryKey(m)))
				{
					Type returnType = MemberExpression.GetReturnType(memberInfo);

					//is this a collection of a mapped type? if so, ignore since this must be a 1-1, 1-many or many-many relationship and must be mapped somewhere else
					if (DataType.IsCollection(returnType) && IsMapped(returnType.GetCollectionItemType()))
					{
						continue;
					}

					//its a persistent type, with it's own table, map as a foreign key with one or more columns for the primary key
					if (IsMapped(returnType))
					{
						//we asume this datatype is already mapped along with it's primery key
						DataType returnDataType = returnType;

						ForeignKey foreignKey = new ForeignKey();
						foreignKey.Table = dtype.Table;
						foreignKey.RemoteTable = returnDataType.Table;
						foreignKey.Name = "FK_" + dtype.Name + "_" + memberInfo.Name + "_" + random.Next();

						foreach (DataMember pk in returnDataType.PrimaryKey.ToList())
						{
							DataMember dmember = dtype.AddMember(memberInfo.Name + "." + pk.Expression);

							dmember.Column.Name = memberInfo.Name + "_" + pk.Expression.Expression.Replace('.', '_');
							dmember.Column.IsPrimaryKey = false;
							dmember.Column.IsNullable = !RequiredValidator.IsRequired(memberInfo);

							foreignKey.Columns.Add(new Tuple<Column, Column>(dmember.Column, pk.Column));
						}

						dtype.Table.ForeignKeys.Add(foreignKey);
					}
					//just map as a atomic value
					else
					{
						//create datamember
						dtype.AddMember(memberInfo.Name);
					}
				}

				foreach (var memberInfo in GetMappableMembers(dtype.InnerType))
				{
					foreach (var att in memberInfo.GetCustomAttributes())
					{
						var validator = att as ValidatorBase;

						if (validator == null)
						{
							continue;
						}

						MemberValidator memberValidator = new MemberValidator(new MemberExpression(memberInfo.DeclaringType, memberInfo.Name), validator);
						dtype.Validators.Add(memberValidator);
					}
				}

				yield return dtype;
			}
		}
 public MemberService(IJsonRepository <Member> memberRepository, MemberValidator membervalidator, IEventPublisher eventPublisher)
 {
     _memberRepository = memberRepository;
     _membervalidator  = membervalidator;
     _eventPublisher   = eventPublisher;
 }
示例#21
0
 public MemberController()
 {
     _memberRepo = new MemberRepo();
     _validator  = new MemberValidator();
 }
        /// <summary>
        /// Author: Ramesh Adhikari
        /// Created On: 01/30/2019
        /// Create new member and check for the validation
        /// </summary>
        private void CreateMember()
        {
            string firstName   = txtFirstName.Text.Trim();
            string lastName    = txtLastName.Text.Trim();
            string phoneNumber = txtPhoneNumber.Text.Trim();
            string email       = txtEmail.Text.Trim();
            string password    = txtPassword.Password.Trim();
            string active      = txtActive.IsEnabled.ToString();


            if (txtFirstName.Text == "" ||
                txtLastName.Text == "" ||
                txtEmail.Text == "" ||
                txtPhoneNumber.Text == ""

                )
            {
                MessageBox.Show("Please Fill Out the Form");
            }



            // Validate the phone number
            else if (!Regex.IsMatch(txtPhoneNumber.Text, @"^\(?\d{3}\)?[\s\-]?\d{3}\-?\d{4}$"))
            {
                MessageBox.Show("Please Enter Valid Phone Number");
                txtPhoneNumber.Select(0, txtPhoneNumber.Text.Length);
                txtPhoneNumber.Focus();
            }

            else if (!ValidateEmailAddress())
            {
                MessageBox.Show("Please Enter Valid Email");
                txtEmail.Select(0, txtEmail.Text.Length);
                txtEmail.Focus();
            }
            else
            {
                MemberValidator.ValidateEmail(new Member()
                {
                    Email = email
                });
                MemberValidator.ValidatePhoneNumber(new Member()
                {
                    PhoneNumber = phoneNumber
                });

                // New member
                try
                {
                    _newMember = new Member
                    {
                        FirstName   = firstName,
                        LastName    = lastName,
                        PhoneNumber = phoneNumber,
                        Email       = email,
                        Password    = password,
                        //Active = active,
                    };
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        /// <summary>
        /// Validates Form Fields data
        /// </summary>
        /// <returns>If Validation succed, returns True. If not, returns false.</returns>
        private void ValidatedFields(MemberModel model)
        {
            var validator = new MemberValidator();

            validator.ValidateAndThrow(model);
        }
示例#24
0
        public void Should_AddRule_ThrowException_When_NullRule()
        {
            var memberValidator = new MemberValidator();

            Assert.Throws<ArgumentNullException>(() => { memberValidator.AddRule(null); });
        }