예제 #1
0
        public async Task <GatewayDto> CreateGateway(CreateGatewayDto dto)
        {
            var entity = mapper.Map <Gateway>(dto);

            entity.Created = DateTime.Now;
            return(mapper.Map <GatewayDto>(await gatewayRepository.Insert(entity)));
        }
예제 #2
0
        public GatewayDto Create(CreateGatewayDto input)
        {
            var query       = _gatewayRepository.GetAllIncluding().Where(g => g.HardwareId == input.HardwareId || g.GatewayName == input.GatewayName);
            var gateway_old = query.FirstOrDefault();

            if ((query.Any()) && (query.FirstOrDefault().IsDeleted == true))
            {
                gateway_old.IsDeleted = false;
                var result_old = _gatewayRepository.Update(gateway_old);
                CurrentUnitOfWork.SaveChanges();
                return(ObjectMapper.Map <GatewayDto>(result_old));
            }

            if (query.Any() && gateway_old.IsDeleted == false)
            {
                throw new ApplicationException("网关已存在");
            }

            var workshopQuery = _workshopRepository.GetAllIncluding().Where(w => w.WorkshopName == input.WorkshopName)
                                .Where(w => w.Factory.FactoryName == input.FactoryName)
                                .Where(w => w.Factory.City.CityName == input.CityName);
            var workshop = workshopQuery.FirstOrDefault();

            if (workshop == null)
            {
                throw new ApplicationException("Workshop不存在");
            }

            var gatewayTypeQuery = _gatewayTypeRepository.GetAll().Where(gt => gt.TypeName == input.GatewayTypeName);
            var gatewayType      = gatewayTypeQuery.FirstOrDefault();

            if (gatewayType == null)
            {
                throw new ApplicationException("网关类型不存在");
            }
            var gateway = ObjectMapper.Map <Gateway>(input);

            gateway.Workshop    = workshop;
            gateway.GatewayType = gatewayType;
            var result = _gatewayRepository.Insert(gateway);

            CurrentUnitOfWork.SaveChanges();
            return(ObjectMapper.Map <GatewayDto>(result));
        }
예제 #3
0
 public Task <GatewayDto> CreateGateway(CreateGatewayDto dto)
 {
     return(gatewayService.CreateGateway(dto));
 }
예제 #4
0
 /// <summary>
 /// Create new Gateway
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='newGateway'>
 /// The entity to create
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async System.Threading.Tasks.Task <object> PostBynewGatewayAsync(this IGateways operations, CreateGatewayDto newGateway, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))
 {
     using (var _result = await operations.PostBynewGatewayWithHttpMessagesAsync(newGateway, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
예제 #5
0
 /// <summary>
 /// Create new Gateway
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='newGateway'>
 /// The entity to create
 /// </param>
 public static object PostBynewGateway(this IGateways operations, CreateGatewayDto newGateway)
 {
     return(System.Threading.Tasks.Task.Factory.StartNew(s => ((IGateways)s).PostBynewGatewayAsync(newGateway), operations, System.Threading.CancellationToken.None, System.Threading.Tasks.TaskCreationOptions.None, System.Threading.Tasks.TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }