示例#1
0
        /// <summary>
        /// Map a Entity Batch from a Model Batch
        /// </summary>
        /// <param name="batch">A Batch Model</param>
        /// <returns>A Batch Entity</returns>
        /// <exception cref="System.ArgumentException">Thrown when start date is after end date</exception>

        public Lib.Models.Batch MapBatch(Entities.Batch batch)
        {
            var newBatch = new Lib.Models.Batch()
            {
                Id = batch.Id,
                BatchCurriculum = batch.BatchCurriculum,
                TrainingCenter  = batch.TrainingCenter
            };

            newBatch.SetStartAndEndDate(batch.StartDate, batch.EndDate);
            return(newBatch);
        }
示例#2
0
        /// <summary>
        /// Map a Model Batch from a Entity Batch
        /// </summary>
        /// <param name="batch">A Batch Entity</param>
        /// <returns>A Batch Model</returns>
        /// <exception cref="System.ArgumentException">Thrown when start date is after end date</exception>
        public Entities.Batch MapBatch(Lib.Models.Batch batch)
        {
            //checks that start date is before end date
            if (batch.StartDate.CompareTo(batch.EndDate) >= 0)
            {
                throw new ArgumentException($"Start date must be before end date. Start Date: {batch.StartDate}, End Date: {batch.EndDate}");
            }

            return(new Entities.Batch
            {
                Id = batch.Id,
                BatchCurriculum = batch.BatchCurriculum,
                StartDate = batch.StartDate,
                EndDate = batch.EndDate,
                TrainingCenter = batch.TrainingCenter
            });
        }
示例#3
0
        /// <summary>
        /// Map a Model Tenant from a Entity Tenant
        /// </summary>
        /// <param name="tenant">A Tenant Entity who may have a nested Car Model and/or a Batch Model</param>
        /// <returns>A Tenant Model who may have a nested Car Model and/or a Batch Model</returns>
        public Lib.Models.Tenant MapTenant(Entities.Tenant tenant)
        {
            Lib.Models.Batch batch;
            int?batchId;

            if (tenant.Batch != null)
            {
                batch = new Lib.Models.Batch
                {
                    Id = tenant.Batch.Id,
                    BatchCurriculum = tenant.Batch.BatchCurriculum,
                    TrainingCenter  = tenant.Batch.TrainingCenter
                };
                batch.SetStartAndEndDate(tenant.Batch.StartDate, tenant.Batch.EndDate);
                batchId = tenant.BatchId;
            }
            else
            {
                batch   = null;
                batchId = null;
            }

            Lib.Models.Car car;
            int?           carId;

            if (tenant.Car != null)
            {
                car = new Lib.Models.Car()
                {
                    Id           = tenant.Car.Id,
                    LicensePlate = tenant.Car.LicensePlate,
                    Make         = tenant.Car.Make,
                    Model        = tenant.Car.Model,
                    Color        = tenant.Car.Color,
                    Year         = tenant.Car.Year,
                    State        = tenant.Car.State
                };
                carId = tenant.CarId;
            }
            else
            {
                car   = null;
                carId = null;
            }

            return(new Lib.Models.Tenant
            {
                Id = tenant.Id,
                Email = tenant.Email,
                Gender = tenant.Gender,
                FirstName = tenant.FirstName,
                LastName = tenant.LastName,
                AddressId = tenant.AddressId,
                RoomId = tenant.RoomId,
                CarId = carId,
                BatchId = batchId,
                TrainingCenter = tenant.TrainingCenter,

                Car = car,
                Batch = batch
            });
        }
示例#4
0
        public async Task <ActionResult <IEnumerable <ApiTenant> > > GetAllAsync([FromQuery] string firstName = null, [FromQuery] string lastName = null, [FromQuery] string gender = null, [FromQuery] string trainingCenter = null)
        {
            //Parse training center string to guid if it exists
            Guid?trainingCenterGuid;

            if (trainingCenter != null)
            {
                trainingCenterGuid = Guid.Parse(trainingCenter);
            }
            else
            {
                trainingCenterGuid = null;
            }

            //Call repository GetAllAsync
            _logger.LogInformation("GET - Getting tenants");
            var tenants = await _tenantRepository.GetAllAsync(firstName, lastName, gender, trainingCenterGuid);

            //Maps batches and cars correctly, based on null or not null
            var newTenants = new List <Lib.Models.Tenant>();

            foreach (var tenant in tenants)
            {
                Lib.Models.Batch batch;
                int?batchId;
                if (tenant.Batch != null)
                {
                    batch = new Lib.Models.Batch
                    {
                        Id = tenant.Batch.Id,
                        BatchCurriculum = tenant.Batch.BatchCurriculum,
                        TrainingCenter  = tenant.Batch.TrainingCenter
                    };
                    batch.SetStartAndEndDate(tenant.Batch.StartDate, tenant.Batch.EndDate);
                    batchId = tenant.BatchId;
                }
                else
                {
                    batch   = null;
                    batchId = null;
                }
                tenant.Batch   = batch;
                tenant.BatchId = batchId;
                Lib.Models.Car car;
                int?           carId;
                if (tenant.Car != null)
                {
                    car = new Lib.Models.Car()
                    {
                        Id           = tenant.Car.Id,
                        LicensePlate = tenant.Car.LicensePlate,
                        Make         = tenant.Car.Make,
                        Model        = tenant.Car.Model,
                        Color        = tenant.Car.Color,
                        Year         = tenant.Car.Year,
                        State        = tenant.Car.State
                    };
                    carId        = tenant.CarId;
                    tenant.CarId = carId;
                }
                else
                {
                    car = null;
                }
                tenant.Car = car;

                newTenants.Add(tenant);
            }

            //Cast all Logic Tenants into ApiTenants
            var apiTenants = new List <ApiTenant>();

            foreach (var apiTenant in newTenants)
            {
                var newApiTenant = new ApiTenant
                {
                    Id             = apiTenant.Id,
                    Email          = apiTenant.Email,
                    Gender         = apiTenant.Gender,
                    FirstName      = apiTenant.FirstName,
                    LastName       = apiTenant.LastName,
                    AddressId      = apiTenant.AddressId,
                    RoomId         = apiTenant.RoomId,
                    CarId          = apiTenant.CarId,
                    BatchId        = apiTenant.BatchId,
                    TrainingCenter = apiTenant.TrainingCenter
                };
                apiTenants.Add(newApiTenant);
            }
            //Return OK with a list of tenants
            return(Ok(apiTenants));
        }