示例#1
0
        public void ValidateUpdate_ClaimWithoutDescription_AttributeValueExThrown()
        {
            var claim = new Claim {
                Status = null
            };

            Assert.Throws <AttributeValueException>(() => ClaimValidator.Validate(claim, HttpMethod.Put));
        }
示例#2
0
        public void ValidateLessThanClaims(Operator claimOperator, int claimQuantity, int claimPips, bool claimIncludeWilds, string diceText, bool expectedValidationResult)
        {
            var claim = new Claim(claimOperator, claimQuantity, claimPips, claimIncludeWilds);

            var isValid = ClaimValidator.Validate(claim, diceText);

            isValid.ShouldBe(expectedValidationResult);
        }
示例#3
0
        public void ValidateThatApproximateClaimsAreWithinOneOnEachSide(Operator claimOperator, int claimQuantity, int claimPips, bool claimIncludeWilds, string diceText, bool expectedValidationResult)
        {
            var claim = new Claim(claimOperator, claimQuantity, claimPips, claimIncludeWilds);

            var isValid = ClaimValidator.Validate(claim, diceText);

            isValid.ShouldBe(expectedValidationResult);
        }
示例#4
0
        void Add()
        {
            var address = new Address()
            {
                Country = Session.DataModel.Countries.FirstOrDefault()
            };

            var entrant = new Entrant()
            {
                Address = address,
                Gender  = Session.DataModel.Genders.First()
            };

            var ord = new OtherRequiredDocument
            {
                Fluorography       = false,
                Certificate        = false,
                Photos             = false,
                MedicinePermission = false
            };

            var identityDocument = new IdentityDocument();

            var claim = new Claim()
            {
                RegistrationDate  = DateTime.Now,
                IsHostelNeed      = false,
                PersonalReturning = true,
                ClaimStatus       = Session.DataModel.ClaimStatuses.FirstOrDefault()
            };

            claim.Entrants.Add(entrant);
            claim.OtherRequiredDocuments.Add(ord);
            claim.IdentityDocuments.Add(identityDocument);

            Session.DataModel.OtherRequiredDocuments.Add(ord);
            Session.DataModel.Addresses.Add(address);
            Session.DataModel.Entrants.Add(entrant);
            Session.DataModel.IdentityDocuments.Add(identityDocument);
            Session.DataModel.Claims.Add(claim);

            var vm = new ClaimEditorViewModel(claim);

            var validator = new ClaimValidator(claim);

            if (DialogLayer.ShowEditor(EditingContent.ClaimEditor, vm, validator))
            {
                Session.DataModel.SaveChanges();
                RaisePropertyChanged("ClaimList");
            }
            else
            {
                Session.DataModel.Claims.Remove(claim);
                Session.DataModel.SaveChanges();
            }
        }
示例#5
0
        void Edit()
        {
            var vm        = new ClaimEditorViewModel(_selectedClaim);
            var validator = new ClaimValidator(_selectedClaim);

            if (DialogLayer.ShowEditor(EditingContent.ClaimEditor, vm, validator))
            {
                Session.DataModel.SaveChanges();
                RaisePropertyChanged("ClaimList");
            }
        }
示例#6
0
        public void ValidateUpdate_ClaimWithoutTitle_AttributeValueExThrown()
        {
            var claim = new Claim()
            {
                Description = "Alguna desc", Status = null
            };

            Assert.Throws <AttributeValueException>(() =>
            {
                ClaimValidator.Validate(claim, HttpMethod.Put);
            });
        }
示例#7
0
        public void Validate_InvalidStatus_AttributeSizeException()
        {
            var claim = new Claim {
                Status    = "CUALQUIERA",
                Title     = "Epale",
                BaggageId = 10
            };

            Assert.Throws <RequiredAttributeException>(() =>
            {
                ClaimValidator.Validate(claim, HttpMethod.Post);
            });
        }
示例#8
0
        public void ValidatePost_ClaimWithoutBaggage_RequiredAttributeExceptionThrown()
        {
            var claim = new Claim {
                Status    = "ABIERTO",
                Title     = "Epale",
                BaggageId = 0
            };

            Assert.Throws <RequiredAttributeException>(() =>
            {
                ClaimValidator.Validate(claim, HttpMethod.Post);
            });
        }
示例#9
0
        public void ValidateUpdate_ClaimWithStatusAndTitle_AttributeValueExThrown()
        {
            var claim = new Claim {
                Status      = "ABIERTO",
                Title       = "Epale",
                Description = "Epale"
            };

            Assert.Throws <AttributeValueException>(() =>
            {
                ClaimValidator.Validate(claim, HttpMethod.Put);
            });
        }
示例#10
0
        public void Validate_ValidClaim_NoExceptionThrown()
        {
            var claim = new Claim {
                Status    = "ABIERTO",
                Title     = "Epale",
                BaggageId = 10
            };

            Assert.DoesNotThrow(() =>
            {
                ClaimValidator.Validate(claim);
            });
        }
示例#11
0
        public void Validate_TitleSize_AttributeSizeException()
        {
            var claim = new Claim {
                Status    = "ABIERTO",
                Title     = "Epale.............................................................",
                BaggageId = 10
            };

            Assert.Throws <RequiredAttributeException>(() =>
            {
                ClaimValidator.Validate(claim, HttpMethod.Post);
            });
        }
示例#12
0
        public void InvalidWhenClaimValueNotProvided(string claimValue)
        {
            // arrange
            var validator     = new ClaimValidator();
            var assignmentDto = new ClaimDto()
            {
                Value = claimValue,
                Type  = validClaimType
            };
            // act
            var result = validator.Validate(assignmentDto);

            // assert
            Assert.False(result.IsValid);
        }
示例#13
0
        public void ValidWhenEmailAndPasswordProvided()
        {
            // arrange
            var validator     = new ClaimValidator();
            var assignmentDto = new ClaimDto()
            {
                Type  = validClaimType,
                Value = validClaimValue
            };
            // act
            var result = validator.Validate(assignmentDto);

            // assert
            Assert.True(result.IsValid);
        }
示例#14
0
        public static void Validate(ExcelWorksheet worksheet, List <Entity> list)
        {
            if (worksheet.Name == "Beneficiary")
            {
                var validator = new BeneficiaryValidator();
                //validator.Validate(list);
            }
            if (worksheet.Name == "Policy")
            {
                var validator = new PolicyValidator();
            }
            if (worksheet.Name == "Claim")
            {
                var validator = new ClaimValidator();
            }

            //return validator;
        }
示例#15
0
 public void Execute()
 {
     ClaimValidator.Validate(_claim, HttpMethod.Post);
 }
示例#16
0
 public Claim Build()
 {
     ClaimValidator.Validate(_claim);
     return(_claim);
 }
示例#17
0
        public async Task ClaimDiceAsync([Remainder] string claimText)
        {
            //await SendMessageAsync("I thought you wanted to be on the nice list?");
            return;

            if (claimText.Contains("help"))
            {
                await ClaimHelpAsync();

                return;
            }

            claimText = claimText.Replace("❤️", "<3");

            var game = await GetGameAsync(GameState.InProgress);

            var gamePlayer = game.GamePlayers
                             .Where(x => x.NumberOfDice > 0)
                             .Where(x => x.Player.Username == Context.User.Username)
                             .SingleOrDefault();

            if (gamePlayer == null)
            {
                return;
            }

            // make sure claim calls from previous rounds don't carry over if called too late
            if (Context.Message.Timestamp.ToLocalTime() < game.CurrentRound.DateStarted)
            {
                return;
            }

            if (!(game.CurrentRound is StandardRound))
            {
                await SendMessageAsync("Sorry, claims are only currently supported in standard rounds.");

                return;
            }

            Claim claim;

            try
            {
                claim = ClaimParser.Parse(claimText);

                DeleteCommandFromDiscord(Context.Message.Id);

                var message = await SendMessageAsync($":loudspeaker: {gamePlayer.Player.Nickname} claims " +
                                                     $"{claim.Operator.ToReadableString()} `{claim.Quantity}` x {claim.Pips.GetEmoji()}{(claim.IncludeWilds ? "" : " (no wilds)")} ...");

                Thread.Sleep(2000);

                var isClaimValid = ClaimValidator.Validate(claim, gamePlayer.Dice);

                var validationMessage = isClaimValid ? ":white_check_mark: It's Legit!" : ":x: Nope!";

                await message.ModifyAsync(msg => msg.Content = $"{message.Content} {validationMessage}");
            }
            catch (ArgumentException)
            {
                await SendMessageAsync($"Sorry, your claim doesn't jive. Try `!claim help` for help.");
            }
        }
示例#18
0
        /// <summary>
        /// Отправляет заявление в архив и создает на его основе новое с такми же данными, но с опущенными номером
        /// заявления, условиями приёма, внутренними вступительными испытаниями.
        /// Также выставляет текущую дату регистрации заявления.
        /// </summary>
        /// <param name="existingClaim">Существующее заявление, отправляемое в архив</param>
        void CopyAndArchiveClaim()
        {
            var existingClaim = SelectedClaim;
            // Копируем текущие данные в новое заявление
            var newClaim = new Claim
            {
                RegistrationDate  = DateTime.Now,
                ClaimStatus       = existingClaim.ClaimStatus,
                IsHostelNeed      = existingClaim.IsHostelNeed,
                PersonalReturning = existingClaim.PersonalReturning
            };

            newClaim.ClaimStatus = existingClaim.ClaimStatus;

            // Документы о результатах ЕГЭ
            foreach (var egeDoc in existingClaim.EgeDocuments)
            {
                var newEgeDoc = new EgeDocument
                {
                    OriginalReceivedDate = egeDoc.OriginalReceivedDate,
                    Number = egeDoc.Number,
                    Date   = egeDoc.Date,
                    Year   = egeDoc.Year
                };

                // Сами результаты ЕГЭ
                foreach (var result in egeDoc.EgeResults)
                {
                    var newResult = new EgeResult
                    {
                        ExamSubject = result.ExamSubject,
                        Value       = result.Value,
                        IsChecked   = result.IsChecked
                    };

                    newEgeDoc.EgeResults.Add(newResult);
                }
                newClaim.EgeDocuments.Add(newEgeDoc);
            }

            // Индивидуальные достижения
            foreach (var individualAchievement in existingClaim.EntranceIndividualAchievements)
            {
                var newIndAch = new EntranceIndividualAchievement
                {
                    CampaignIndividualAchievement = individualAchievement.CampaignIndividualAchievement
                };
                newClaim.EntranceIndividualAchievements.Add(newIndAch);
            }

            // Документы об образовании
            // Аттестаты среднего образования
            foreach (var eduDoc in existingClaim.SchoolCertificateDocuments)
            {
                var newEduDoc = new SchoolCertificateDocument
                {
                    OriginalReceivedDate = eduDoc.OriginalReceivedDate,
                    Series                = eduDoc.Series,
                    Number                = eduDoc.Number,
                    Date                  = eduDoc.Date,
                    SubdivisionCode       = eduDoc.SubdivisionCode,
                    EducationOrganization = eduDoc.EducationOrganization,
                    FiveCount             = eduDoc.FiveCount,
                    FourCount             = eduDoc.FourCount,
                    ThreeCount            = eduDoc.ThreeCount
                };
                newClaim.SchoolCertificateDocuments.Add(newEduDoc);
            }

            // Дипломы СПО
            foreach (var eduDoc in existingClaim.MiddleEducationDiplomaDocuments)
            {
                var newEduDoc = new MiddleEducationDiplomaDocument
                {
                    OriginalReceivedDate = eduDoc.OriginalReceivedDate,
                    Series                = eduDoc.Series,
                    Number                = eduDoc.Number,
                    Date                  = eduDoc.Date,
                    SubdivisionCode       = eduDoc.SubdivisionCode,
                    EducationOrganization = eduDoc.EducationOrganization,
                    FiveCount             = eduDoc.FiveCount,
                    FourCount             = eduDoc.FourCount,
                    ThreeCount            = eduDoc.ThreeCount
                };
                newClaim.MiddleEducationDiplomaDocuments.Add(newEduDoc);
            }

            // Дипломы ВО
            foreach (var eduDoc in existingClaim.HighEducationDiplomaDocuments)
            {
                var newEduDoc = new HighEducationDiplomaDocument
                {
                    OriginalReceivedDate = eduDoc.OriginalReceivedDate,
                    Series                = eduDoc.Series,
                    Number                = eduDoc.Number,
                    Date                  = eduDoc.Date,
                    SubdivisionCode       = eduDoc.SubdivisionCode,
                    EducationOrganization = eduDoc.EducationOrganization,
                    FiveCount             = eduDoc.FiveCount,
                    FourCount             = eduDoc.FourCount,
                    ThreeCount            = eduDoc.ThreeCount
                };
                newClaim.HighEducationDiplomaDocuments.Add(newEduDoc);
            }

            // Документы
            // Документы, подтверждающие льготу
            foreach (var quotaDoc in existingClaim.OrphanDocuments)
            {
                var newQuotaDoc = new OrphanDocument
                {
                    OriginalReceivedDate = quotaDoc.OriginalReceivedDate,
                    OrphanDocumentType   = quotaDoc.OrphanDocumentType,
                    Series       = quotaDoc.Series,
                    Number       = quotaDoc.Number,
                    Date         = quotaDoc.Date,
                    Organization = quotaDoc.Organization
                };
                newClaim.OrphanDocuments.Add(newQuotaDoc);
            }

            // Другие истребуемые документы
            var oldOtherRequiredDoc = existingClaim.OtherRequiredDocuments.First();
            var newOtherRequiredDoc = new OtherRequiredDocument
            {
                Certificate        = oldOtherRequiredDoc.Certificate,
                Photos             = oldOtherRequiredDoc.Photos,
                MedicinePermission = oldOtherRequiredDoc.MedicinePermission,
                Fluorography       = oldOtherRequiredDoc.Fluorography
            };

            newClaim.OtherRequiredDocuments.Add(newOtherRequiredDoc);

            // Личные данные абитуриента
            var oldEntrant = existingClaim.Entrants.First();
            var newEntrant = new Entrant
            {
                LastName          = oldEntrant.LastName,
                FirstName         = oldEntrant.FirstName,
                Patronymic        = oldEntrant.Patronymic,
                Gender            = oldEntrant.Gender,
                CustomInformation = oldEntrant.CustomInformation,
                Email             = oldEntrant.Email,
                Address           = oldEntrant.Address,
                Phone             = oldEntrant.Phone,
                MobilePhone       = oldEntrant.MobilePhone,
                FatherName        = oldEntrant.FatherName,
                FatherPhone       = oldEntrant.FatherPhone,
                FatherJob         = oldEntrant.FatherJob,
                MotherName        = oldEntrant.MotherName,
                MotherPhone       = oldEntrant.MotherPhone,
                MotherJob         = oldEntrant.MotherJob,
                JobPost           = oldEntrant.JobPost,
                JobOrganization   = oldEntrant.JobOrganization,
                JobStage          = oldEntrant.JobStage,
                ForeignLanguage   = oldEntrant.ForeignLanguage
            };

            newClaim.Entrants.Add(newEntrant);

            // Документ, удостоверяющий личность
            foreach (var identityDoc in existingClaim.IdentityDocuments)
            {
                var newIdentityDoc = new IdentityDocument
                {
                    OriginalReceivedDate = identityDoc.OriginalReceivedDate,
                    Series               = identityDoc.Series,
                    Number               = identityDoc.Number,
                    Date                 = identityDoc.Date,
                    SubdivisionCode      = identityDoc.SubdivisionCode,
                    Organization         = identityDoc.Organization,
                    Citizenship          = identityDoc.Citizenship,
                    IdentityDocumentType = identityDoc.IdentityDocumentType,
                    BirthDate            = identityDoc.BirthDate,
                    BirthPlace           = identityDoc.BirthPlace
                };
                newClaim.IdentityDocuments.Add(newIdentityDoc);
            }

            Session.DataModel.Claims.Add(newClaim);

            // Открываем редактор нового заявления
            var vm        = new ClaimEditorViewModel(newClaim);
            var validator = new ClaimValidator(newClaim);

            if (DialogLayer.ShowEditor(EditingContent.ClaimEditor, vm, validator))
            {
                Session.DataModel.SaveChanges();

                // Производим возврат текущего заявления
                SendClaimToArchive();

                // Обновляем список заявлений
                Session.RefreshAll();
                RaisePropertyChanged("ClaimList");
            }
        }