Exemplo n.º 1
0
        public ApiResult Add([FromBody] WorkOrderInput workOrder)
        {
            if (!this.IsFormValid())
            {
                return(ApiResult.Failure(this.FormInvalidReason(), MessageCodes.ParameterValidationFailure));
            }

            var user = Resolve <IUserService>().GetSingle(u => u.Id == workOrder.LoginUserId);

            if (user == null)
            {
                return(ApiResult.Failure("会员为空"));
            }

            var view = new WorkOrder
            {
                Description = workOrder.Description,
                ClassId     = WorkOrderType.Problem.Value(),
                Title       = $"用户[{user.UserName}]问题反馈",
                Type        = WorkOrderType.Problem,
                UserId      = workOrder.LoginUserId,
                State       = WorkOrderState.Accept
            };

            Resolve <IWorkOrderService>().AddWorkOrder(view);

            return(ApiResult.Success());
        }
Exemplo n.º 2
0
        public List <WorkOrderInput> works()
        {
            List <WorkOrderInput> workOrders = new List <WorkOrderInput>();

            string filePath = @".\Data\workList.xlsx";

            FileStream       stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
            IExcelDataReader excelReader;

            int counter = 0;


            if (Path.GetExtension(filePath).ToUpper() == ".XLS")
            {
                excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
            }
            else
            {
                excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
            }


            while (excelReader.Read())
            {
                counter++;
                if (counter > 1)
                {
                    int    work      = (int)excelReader.GetDouble(0);
                    string startDate = excelReader.GetString(1);
                    string endDate   = excelReader.GetString(2);
                    var    addWork   = new WorkOrderInput()
                    {
                        EndDate   = DateTime.Parse(endDate),
                        StartDate = DateTime.Parse(startDate),
                        WorkOrder = work
                    };
                    workOrders.Add(addWork);
                }
            }

            excelReader.Close();
            return(workOrders);
        }
Exemplo n.º 3
0
        public async Task <T> CreateWorkOrder <T>(IOrganizationCustomer customer, WorkOrderInput input)
            where T : BuyerWorkOrderOutput
        {
            _logger.LogInformation(GetLogMessage("Cu: {0}"), customer.OrganizationId);

            //var account = await _customerAccountRepository.Queryable()
            //    .Where(x => x.AccountManagerOrganizationId == input.AccountManagerOrganizationId
            //                && x.AccountManagerId == input.AccountManagerId && x.CustomerId == customer.CustomerId &&
            //                x.CustomerOrganizationId == customer.OrganizationId)
            //    .FirstAsync();

            var entity = new WorkOrder()
            {
                BuyerNumber                  = await GetNextBuyerNumber(customer.OrganizationId),
                ProviderNumber               = await GetNextProviderNumber(input.AccountManagerOrganizationId),
                Status                       = input.IsDraft ? OrderStatus.Draft : OrderStatus.Sent,
                CustomerId                   = customer.CustomerId,
                CustomerOrganizationId       = customer.OrganizationId,
                AccountManagerId             = input.AccountManagerId,
                AccountManagerOrganizationId = input.AccountManagerOrganizationId
            }.InjectFrom(input) as WorkOrder;

            var result = await Repository.InsertAsync(entity, true);

            _logger.LogDebug(GetLogMessage("{0} records updated"), result);
            if (result > 0)
            {
                await Task.Run(() => RaiseEvent(new WorkOrderCreatedEvent()
                {
                    WorkOrderId = entity.Id
                }));
            }

            var output = await Repository.Queryable()
                         .Where(x => x.Id == entity.Id)
                         .ProjectTo <T>(ProjectionMapping)
                         .FirstOrDefaultAsync();

            return(output);
        }
Exemplo n.º 4
0
        public async Task <IActionResult> CreateWorkOrder([FromRoute] Guid organizationId, [FromBody] WorkOrderInput input)
        {
            var order = await _workOrderService.CreateWorkOrder <BuyerWorkOrderOutput>(_customer, input);

            return(Ok(order));
        }