示例#1
0
        /// <summary>
        /// 服务商取消工单
        /// </summary>
        /// <returns></returns>
        public async Task <bool> SPCancelMaintenance(SPCancelMaintenanceRequest request)
        {
            //判断该工单状态是否可以取消
            var maintenanceInfo = await this.GetById(request.Id.Value);

            if (maintenanceInfo == null)
            {
                throw new SinoException(ErrorCode.E30016, nameof(ErrorCode.E30016).GetCode());
            }

            if (maintenanceInfo.MaintenancStatus.Value > (int)EMaintenancStatus.Received)
            {
                var desc = maintenanceInfo.MaintenancStatus.Value.GetEnumDescription <EMaintenancStatus>();
                throw new SinoException(string.Format(ErrorCode.E30018, desc), nameof(ErrorCode.E30018).GetCode());
            }

            //进行取消操作
            MaintenanceInfo maintenance = new MaintenanceInfo();

            maintenance.MaintenancStatus = (int)EMaintenancStatus.Closed;
            maintenance.Id = request.Id.Value;
            maintenance.LastModificationTime = DateTime.Now;
            List <string> updateCols = new List <string>();

            updateCols.Add(nameof(MaintenanceInfo.MaintenancStatus));
            updateCols.Add(nameof(MaintenanceInfo.LastModificationTime));
            var result = await _MaintenanceInfoRep.UpdateAssignFieldsById(maintenance, updateCols);

            return(result > 0);
        }
 public async Task SPCancelMaintenance(SPCancelMaintenanceRequest request)
 {
     _logger.Info(new LogInfo()
     {
         Method = nameof(SPCancelMaintenance), Argument = new { request }, Description = "服务商取消工单"
     });
     await _MaintenanceInfoService.SPCancelMaintenance(request);
 }