예제 #1
0
        public IActionResult AddBeer(AddBeerVM vm)
        {
            TapRoom tapRoom = _dal.TapRooms.Where(x => x.Id == vm.TapRoomId).Include(x => x.Beers).Include(x => x.SeasonMember).ThenInclude(x => x.Season).FirstOrDefault();

            if (tapRoom.UserId != _session.UserId)
            {
                return(Json(new { ErrorMessage = "Unauthorized" }));
            }

            DataValidationResult validationResult = TapRoomValidator.AddBeerValidator(vm, tapRoom);

            if (!validationResult.IsValid)
            {
                return(Json(new { ErrorMessage = validationResult.ErrorMessages.First() }));
            }

            Beer beer = new Beer()
            {
                TapRoomId   = vm.TapRoomId,
                BeerName    = vm.BeerName,
                BreweryName = vm.BreweryName,
                StyleName   = vm.StyleName,
                StyleFamily = vm.StyleFamily,
                UntappdId   = vm.UntappdId
            };

            _dal.Beers.Add(beer);
            _dal.SaveChanges();

            return(Json(new { }));
        }
예제 #2
0
        public override IDataValidationResult <TKey> Deleting(TKey id, object arg, IDataValidationResults <TKey> validationResults)
        {
            IDataValidationResult <TKey> result = null;
            TXPORole role = arg as TXPORole;

            if (role != null)
            {
                int userCount = (int)role.Session.Evaluate(typeof(XpoDxUser),
                                                           CriteriaOperator.Parse("Count"),
                                                           CriteriaOperator.Parse("Roles[Id == ?]", role.ID));
                if (userCount > 0)
                {
                    result = new DataValidationResult <TKey>
                    {
                        ResultType = DataValidationResultType.Error,
                        ID         = role.ID,
                        Message    = String.Format("Role '{0}' cannot be deleted because there are users in this Role", role.Name)
                    }
                }
                ;
            }

            if (result == null)
            {
                result = base.Deleting(id, arg, validationResults);
            }
            validationResults.Add(result);
            return(result);
        }
    }
예제 #3
0
        public override IDataValidationResult <TKey> Deleting(TKey id, IDataValidationResults <TKey> validationResults, params object[] args)
        {
            if (args == null || args.Length == 0)
            {
                throw new ArgumentNullException("args[0] should contain reference to XPO entity");
            }
            IDataValidationResult <TKey> result = null;
            TXPORole role = args[0] as TXPORole;

            if (role != null)
            {
                int userCount = (int)role.Session.Evaluate(typeof(XpoDxUser),
                                                           CriteriaOperator.Parse("Count"),
                                                           CriteriaOperator.Parse("Roles[Id == ?]", role.ID));
                if (userCount > 0)
                {
                    result = new DataValidationResult <TKey>
                    {
                        ResultType = DataValidationResultType.Error,
                        ID         = role.ID,
                        Message    = String.Format("Role '{0}' cannot be deleted because there are users in this Role", role.Name)
                    }
                }
                ;
            }

            if (result == null)
            {
                result = base.Deleting(id, validationResults, args);
            }
            validationResults.Add(result);
            return(result);
        }
    }
        private void AssertAreEqual(DataValidationResult expected, DataValidationResult actual)
        {
            Func <ValidationError, ValidationError, bool> equalityFunc = (e1, e2) => e1.ErrorMessage == e2.ErrorMessage && e1.PropertyName == e2.PropertyName;

            Assert.AreEqual(expected.Entry, actual.Entry);
            AssertEx.AreEquivalent(actual.Errors, equalityFunc, expected.Errors.ToArray());
        }
        public void Serialize_MoreEntitiesWithMoreErrors_DeserializedIsSame()
        {
            var errors1 = new[]
            {
                new ValidationError("UserName", "error1"),
                new ValidationError("UserEmail", "error2")
            };
            var entityErrors1 = new DataValidationResult(new EntryDouble(new User(1)), errors1);
            var errors2       = new[]
            {
                new ValidationError("RoleName", "error3"),
                new ValidationError("AccessRights", "error4")
            };
            var entityErrors2 = new DataValidationResult(new EntryDouble(new Role(2)), errors2);

            DataValidationException e = new DataValidationException(string.Empty, new[] { entityErrors1, entityErrors2 });

            using (Stream s = new MemoryStream())
            {
                BinaryFormatter formatter = new BinaryFormatter();
                formatter.Serialize(s, e);
                s.Position = 0; // Reset stream position
                e          = (DataValidationException)formatter.Deserialize(s);
            }

            DataValidationResult[] actual = e.ValidationErrors.ToArray();
            AssertAreEqual(entityErrors1, actual[0]);
            AssertAreEqual(entityErrors2, actual[1]);
        }
예제 #6
0
 /// <summary>
 /// Writes DataValidationResult into JSON.
 /// </summary>
 /// <param name="jsonWriter">The <see cref="JsonWriter"/>.</param>
 /// <param name="dataValidationResult">The DataValidationResult.</param>
 /// <returns>This <see cref="JsonWriter"/> for fluent coding.</returns>
 public static JsonWriter Write(this JsonWriter jsonWriter, DataValidationResult dataValidationResult)
 {
     return(jsonWriter
            .WriteStartObject()
            .WriteNameStringPair(DATA_ROW, dataValidationResult.DataRow.ToString()).WriteComma()
            .WriteNameArrayPair <DataValidationError>(ERRORS, dataValidationResult.Errors, (writer, validationMessage) => writer.Write(validationMessage))
            .WriteEndObject());
 }
예제 #7
0
        public override IDataValidationResult <TKey> Updating(TModel model, IDataValidationResults <TKey> validationResults)
        {
            var result = new DataValidationResult <TKey>
            {
                ResultType = DataValidationResultType.Success,
                ID         = model.ID
            };

            validationResults.Add(result);
            return(result);
        }
예제 #8
0
        public override IDataValidationResult <TKey> Inserted(TModel model, TXPOClass dbModel, IDataValidationResults <TKey> validationResults)
        {
            var result = new DataValidationResult <TKey>
            {
                ResultType = DataValidationResultType.Success,
                ID         = dbModel.ID
            };

            validationResults.Add(result);
            return(result);
        }
예제 #9
0
        public override IDataValidationResult <TKey> Deleting(TKey id, object arg, IDataValidationResults <TKey> validationResults)
        {
            var result = new DataValidationResult <TKey>
            {
                ResultType = DataValidationResultType.Success,
                ID         = id
            };

            validationResults.Add(result);
            return(result);
        }
예제 #10
0
        public override IDataValidationResult <TKey> Deleted(TKey id, TXPOClass dbModel, IDataValidationResults <TKey> validationResults)
        {
            var result = new DataValidationResult <TKey>
            {
                ResultType = DataValidationResultType.Success,
                ID         = id
            };

            validationResults.Add(result);
            return(result);
        }
        // Token: 0x06003135 RID: 12597 RVA: 0x0012238C File Offset: 0x0012058C
        internal static string ValidatePhoneNumbers(UnifiedMessagingUtilities.ValidatePhoneNumber validatePhoneNumber, params string[] phoneNumbers)
        {
            IDataValidationResult dataValidationResult = new DataValidationResult();
            string data   = string.Empty;
            string result = null;

            foreach (string text in phoneNumbers)
            {
                if (!validatePhoneNumber(text, out dataValidationResult))
                {
                    data = text;
                    break;
                }
            }
            if (dataValidationResult.PAAValidationResult != PAAValidationResult.Valid)
            {
                result = UnifiedMessagingUtilities.GetErrorResourceId(dataValidationResult.PAAValidationResult, data);
            }
            return(result);
        }