コード例 #1
0
        /// <summary>
        /// Create new service object and persist it. For the moment we assume this
        /// means to submit a new vacation request.
        /// </summary>
        protected override void DataPortal_Insert()
        {
            using (var ctx = new VacationManagerContext())
            {
                var employee = ctx.Employees.FirstOrDefault(x => x.Id == EmployeeId);
                if (employee == null)
                    throw new ApplicationException(
                        string.Format("New request is associated with inexistent employee having id {0}.", EmployeeId));

                var numberOfVacationDaysLeft = ctx.Situations.Single(x => x.Employee.Id == EmployeeId).AvailableDays;
                if ((NumberOfDays < 1) || (NumberOfDays > numberOfVacationDaysLeft))
                    throw new ApplicationException(
                        string.Format("New request has invalid number of vacation days {0}. Must greather than 0 and less or equal than days left {1}.", NumberOfDays, NumberOfDays));

                var request = new Persistence.Model.VacationRequestEntity
                {
                    CreationDate = DateTime.Now, // TODO: utc?
                    StartDate = StartDate,
                    EndDate =  EndDate,
                    State = VacationRequestState.Submitted,
                    Employee = employee,
                };

                ctx.Requests.Add(request);
                ctx.SaveChanges();

                _requestNumber = request.Id;
                _submissionDate = request.CreationDate;
                _stateId = request.State;
                _employeeFullName = employee.Firstname + " " + employee.LastName;
            }
        }
コード例 #2
0
        /// <summary>
        /// Loads service object fields values (parameter) into the current business object
        /// fields. Curent business object is a transient one. It may be persisted some time
        /// somewhere but for the moment we assume it is not and deal with it like transient.
        /// </summary>
        /// <param name="entity">The source.</param>
        protected void DataPortal_Create(Persistence.Model.VacationRequestEntity entity)
        {
            _requestNumber    = entity.Id;
            _submissionDate   = entity.CreationDate;
            _stateId          = entity.State;
            _employeeFullName = entity.Employee.Firstname + " " + entity.Employee.LastName;

            EmployeeId = entity.Employee.Id;
            StartDate  = entity.StartDate;
            EndDate    = entity.EndDate;
        }
コード例 #3
0
        /// <summary>
        /// Create new service object and persist it. For the moment we assume this
        /// means to submit a new vacation request.
        /// </summary>
        protected override void DataPortal_Insert()
        {
            using (var ctx = new VacationManagerContext())
            {
                var employee = ctx.Employees.FirstOrDefault(x => x.Id == EmployeeId);
                if (employee == null)
                {
                    throw new ApplicationException(
                              string.Format("New request is associated with inexistent employee having id {0}.", EmployeeId));
                }

                var numberOfVacationDaysLeft = ctx.Situations.Single(x => x.Employee.Id == EmployeeId).AvailableDays;
                if ((NumberOfDays < 1) || (NumberOfDays > numberOfVacationDaysLeft))
                {
                    throw new ApplicationException(
                              string.Format("New request has invalid number of vacation days {0}. Must greather than 0 and less or equal than days left {1}.", NumberOfDays, NumberOfDays));
                }

                var request = new Persistence.Model.VacationRequestEntity
                {
                    CreationDate = DateTime.Now, // TODO: utc?
                    StartDate    = StartDate,
                    EndDate      = EndDate,
                    State        = VacationRequestState.Submitted,
                    Employee     = employee,
                };

                ctx.Requests.Add(request);
                ctx.SaveChanges();

                _requestNumber    = request.Id;
                _submissionDate   = request.CreationDate;
                _stateId          = request.State;
                _employeeFullName = employee.Firstname + " " + employee.LastName;
            }
        }