Example #1
0
        /// <summary>
        /// Задать кратность визы
        /// </summary>
        /// <param name="visaMultiplicity">Кратность визы</param>
        internal void SetVisaMultiplicity(VisaMultiplicity visaMultiplicity)
        {
            if (VisaMultiplicity == visaMultiplicity)
            {
                return;
            }

            VisaMultiplicity = visaMultiplicity;
        }
        /// <summary>
        /// Создать лог деталей визита
        /// </summary>
        /// <param name="goal">Цель визита</param>
        /// <param name="country">Страна визита</param>
        /// <param name="visitingPoints">Пункты посещения</param>
        /// <param name="period">Период пребывания</param>
        /// <param name="arrivalDate">Дата прибытия</param>
        /// <param name="departureDate">Дата отъезда</param>
        /// <param name="visaType">Тип визы</param>
        /// <param name="visaCity">Город получения визы</param>
        /// <param name="visaCountry">Страна получения визы</param>
        /// <param name="visaMultiplicity">Кратность визы</param>
        /// <param name="revisionNumber">Номер ревизии</param>
        /// <returns>Идентификатор лога деталей визита</returns>
        public Guid Create(
            string goal,
            string country,
            string visitingPoints,
            TimeSpan period,
            DateTime arrivalDate,
            DateTime departureDate,
            string visaType,
            string visaCity,
            string visaCountry,
            VisaMultiplicity visaMultiplicity,
            long revisionNumber)
        {
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(goal, nameof(goal));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(country, nameof(country));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visitingPoints, nameof(visitingPoints));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaType, nameof(visaType));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaCity, nameof(visaCity));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaCountry, nameof(visaCountry));

            Contract.Argument.IsValidIf(period.Days > 0, $"{nameof(period.Days)} > 0");
            Contract.Argument.IsValidIf(revisionNumber > 0, $"{nameof(revisionNumber)} > 0");
            Contract.Argument.IsValidIf(arrivalDate < departureDate, $"{nameof(arrivalDate)}:{arrivalDate} < {nameof(departureDate)}:{departureDate}");

            var createdVisitDetailLog = _context.Set <VisitDetailLog>().Create();

            var id = _idGenerator.Generate();

            createdVisitDetailLog.Initialize(
                id: id,
                goal: goal,
                country: country,
                visitingPoints: visitingPoints,
                period: period,
                arrivalDate: arrivalDate,
                departureDate: departureDate,
                visaType: visaType,
                visaCity: visaCity,
                visaCountry: visaCountry,
                visaMultiplicity: visaMultiplicity,
                revisionNumber: revisionNumber);

            var newVisitDetailLog = _context.Set <VisitDetailLog>().Add(createdVisitDetailLog);

            return(newVisitDetailLog.Id);
        }
        /// <summary>
        /// Создать детали визита
        /// </summary>
        /// <param name="goal">Цель визита</param>
        /// <param name="country">Страна визита</param>
        /// <param name="visitingPoints">Пункты посещения</param>
        /// <param name="period">Период пребывания</param>
        /// <param name="arrivalDate">Дата прибытия</param>
        /// <param name="departureDate">Дата отъезда</param>
        /// <param name="visaType">Тип визы</param>
        /// <param name="visaCity">Город получения визы</param>
        /// <param name="visaCountry">Страна получения визы</param>
        /// <param name="visaMultiplicity">Кратность визы</param>
        /// <returns>Идентификатор деталей визита</returns>
        public VisitDetail Create(
            Guid invitationId,
            string goal,
            string country,
            string visitingPoints,
            long periodDays,
            DateTime arrivalDate,
            DateTime departureDate,
            string visaType,
            string visaCity,
            string visaCountry,
            VisaMultiplicity visaMultiplicity)
        {
            Contract.Argument.IsNotEmptyGuid(invitationId, nameof(invitationId));
            Contract.Argument.IsValidIf(periodDays > 0, $"{nameof(periodDays)} > 0");
            Contract.Argument.IsValidIf(arrivalDate < departureDate, $"{nameof(arrivalDate)}:{arrivalDate} < {nameof(departureDate)}:{departureDate}");
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(goal, nameof(goal));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(country, nameof(country));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visitingPoints, nameof(visitingPoints));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaType, nameof(visaType));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaCity, nameof(visaCity));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaCountry, nameof(visaCountry));

            var createdVisitDetail = _context.Set <VisitDetail>().Create();

            var id = _idGenerator.Generate();

            createdVisitDetail.Initialize(
                id: id,
                invitationId: invitationId,
                goal: goal,
                country: country,
                visitingPoints: visitingPoints,
                periodDays: periodDays,
                arrivalDate: arrivalDate,
                departureDate: departureDate,
                visaType: visaType,
                visaCity: visaCity,
                visaCountry: visaCountry,
                visaMultiplicity: visaMultiplicity);

            var newVisitDetail = _context.Set <VisitDetail>().Add(createdVisitDetail);

            return(newVisitDetail);
        }
Example #4
0
        /// <summary>
        /// Инициализировать логи деталей визита
        /// </summary>
        /// <param name="id">Идентификатор</param>
        /// <param name="goal">Цель визита</param>
        /// <param name="country">Страна визита</param>
        /// <param name="visitingPoints">Посещаемые пункты</param>
        /// <param name="period">Период пребывания</param>
        /// <param name="arrivalDate">Дата пребытия</param>
        /// <param name="departureDate">Дата депортации</param>
        /// <param name="visaType">Тип визы</param>
        /// <param name="visaCity">Город получения визы</param>
        /// <param name="visaCountry">Страна получения визы</param>
        /// <param name="visaMultiplicity">Кратность визы</param>
        public void Initialize(
            Guid id,
            string goal,
            string country,
            string visitingPoints,
            TimeSpan period,
            DateTime arrivalDate,
            DateTime departureDate,
            string visaType,
            string visaCity,
            string visaCountry,
            VisaMultiplicity visaMultiplicity,
            long revisionNumber)
        {
            Contract.Argument.IsNotEmptyGuid(id, nameof(id));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(goal, nameof(goal));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(country, nameof(country));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visitingPoints, nameof(visitingPoints));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaType, nameof(visaType));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaCity, nameof(visaCity));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaCountry, nameof(visaCountry));

            Contract.Argument.IsValidIf(revisionNumber > 0, $"{nameof(revisionNumber)} > 0");
            Contract.Argument.IsValidIf(period.Days > 0, $"{nameof(period.Days)} > 0");
            Contract.Argument.IsValidIf(arrivalDate < departureDate, $"{nameof(arrivalDate)}:{arrivalDate} < {nameof(departureDate)}:{departureDate}");

            Id = id;

            Goal             = goal;
            Country          = country;
            VisitingPoints   = visitingPoints;
            Period           = period;
            ArrivalDate      = arrivalDate;
            DepartureDate    = departureDate;
            VisaType         = visaType;
            VisaCity         = visaCity;
            VisaCountry      = visaCountry;
            VisaMultiplicity = visaMultiplicity;
            RevisionNumber   = revisionNumber;
        }
Example #5
0
        /// <summary>
        /// Инициализировать детали визита
        /// </summary>
        /// <param name="id">Идентификатор</param>
        /// <param name="invitationId">Идентификатор приглашения</param>
        /// <param name="goal">Цель визита</param>
        /// <param name="country">Страна визита</param>
        /// <param name="visitingPoints">Посещаемые пункты</param>
        /// <param name="period">Период пребывания</param>
        /// <param name="arrivalDate">Дата пребытия</param>
        /// <param name="departureDate">Дата депортации</param>
        /// <param name="visaType">Тип визы</param>
        /// <param name="visaCity">Город получения визы</param>
        /// <param name="visaCountry">Страна получения визы</param>
        /// <param name="visaMultiplicity">Кратность визы</param>
        internal void Initialize(
            Guid id,
            Guid invitationId,
            string goal,
            string country,
            string visitingPoints,
            long periodDays,
            DateTime arrivalDate,
            DateTime departureDate,
            string visaType,
            string visaCity,
            string visaCountry,
            VisaMultiplicity visaMultiplicity)
        {
            /*Contract.Argument.IsValidIf(Id != id, $"{Id} (current) != {id} (new)");
             * Contract.Argument.IsNotEmptyGuid(id, nameof(id));
             * Contract.Argument.IsNotEmptyGuid(invitationId, nameof(invitationId));
             * Contract.Argument.IsValidIf(periodDays > 0, $"{nameof(periodDays)} > 0");
             * Contract.Argument.IsValidIf(arrivalDate < departureDate, $"{nameof(arrivalDate)}:{arrivalDate} < {nameof(departureDate)}:{departureDate}");
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(goal, nameof(goal));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(country, nameof(country));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visitingPoints, nameof(visitingPoints));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaType, nameof(visaType));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaCity, nameof(visaCity));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(visaCountry, nameof(visaCountry));*/

            Id = id;

            SetInvitationId(invitationId);
            SetGoal(goal);
            SetCountry(country);
            SetVisitingPoints(visitingPoints);
            SetArrivalDate(arrivalDate);
            SetDepartureDate(departureDate);
            SetPeriodDays(periodDays);
            SetVisaCountry(country);
            SetVisaCity(visaCity);
            SetVisaType(visaType);
            SetVisaMultiplicity(VisaMultiplicity);
        }