Example #1
0
        /// <summary>
        /// Sends facility to Facility Repository for insertion into database.
        /// </summary>
        /// <param name="facilityRequest">The facility request.</param>
        /// <returns>Task&lt;FacilityEntity&gt;.</returns>
        public async Task <BusinessResult <Model.Facility> > Add(NewFacilityRequest facilityRequest)
        {
            var existingFacility = await _facilityRepository.GetFacilityByCode(facilityRequest.FacilityCode);

            if (existingFacility != null)
            {
                return(new BusinessResult <Model.Facility>(null, CreateUpdateResultEnum.ErrorAlreadyExists));
            }

            var facility = _mapper.Map <NewFacilityRequest, FacilityEntity>(facilityRequest);

            if (await _facilityRepository.AddFacility(facility))
            {
                return(new BusinessResult <Model.Facility>(_mapper.Map <FacilityEntity, Model.Facility>(facility),
                                                           CreateUpdateResultEnum.Success));
            }

            return(new BusinessResult <Model.Facility>(null, CreateUpdateResultEnum.ValidationFailed));
        }