public async Task <ResourceOrderFill> SaveFillAsync(ResourceOrderFill fill, CancellationToken cancellationToken = default(CancellationToken)) { if (fill.ResourceOrderFillId == 0) { var orderFill = await _resourceOrderFillRepository.InsertAsync(fill, cancellationToken); if (orderFill != null) { fill.ResourceOrderFillId = orderFill.ResourceOrderFillId; foreach (var unit in fill.Units) { unit.ResourceOrderFillId = orderFill.ResourceOrderFillId; var fillUnit = await _resourceOrderFillUnitRepository.InsertAsync(unit, cancellationToken); if (fillUnit != null) { unit.ResourceOrderFillUnitId = fillUnit.ResourceOrderFillUnitId; } } } } else { await _resourceOrderFillRepository.UpdateAsync(fill, cancellationToken); foreach (var unit in fill.Units) { await _resourceOrderFillUnitRepository.SaveOrUpdateAsync(unit, cancellationToken); } } return(fill); }
public async Task <ResourceOrderFill> CreateFill(ResourceOrderFill fill) { var savedFill = await _resourceOrdersRepository.SaveFill(fill); //_eventAggregator.SendMessage<ResourceOrderFillAddedEvent>(new ResourceOrderFillAddedEvent() //{ // Order = savedOrder //}); return(savedFill); }
public async Task <ResourceOrderFill> SaveFill(ResourceOrderFill fill) { using (IDbConnection db = new SqlConnection(connectionString)) { if (fill.ResourceOrderFillId == 0) { var id = await db.InsertAsync <ResourceOrderFill>(fill); if (id != null) { fill.ResourceOrderFillId = id.Value; foreach (var unit in fill.Units) { unit.ResourceOrderFillId = id.Value; var itemId = await db.InsertAsync <ResourceOrderFillUnit>(unit); if (itemId != null) { unit.ResourceOrderFillUnitId = itemId.Value; } } } } else { await db.UpdateAsync(fill); foreach (var unit in fill.Units) { await db.UpdateAsync(unit); } } } return(fill); }
public async Task <ResourceOrderFill> CreateFillAsync(ResourceOrderFill fill, CancellationToken cancellationToken = default(CancellationToken)) { return(await _resourceOrdersRepository.SaveFillAsync(fill, cancellationToken)); }
public async Task <IActionResult> FillItem(FillItemInput data) { var model = new FillItemView(); if (data == null || data.Id == 0 || data.Units == null || data.Units.Count() <= 0) { model.Error = true; model.ErrorMessage = "There was an issue trying to process you fill. Please open the order and try the fill again."; return(View(model)); } var item = await _resourceOrdersService.GetOrderItemById(data.Id); if (item == null) { model.Error = true; model.ErrorMessage = "Unable to find this order. The order may be been closed or removed."; return(View(model)); } var order = await _resourceOrdersService.GetOrderById(item.ResourceOrderId); var settings = await _resourceOrdersService.GetSettingsByDepartmentId(order.DepartmentId); var department = _departmentsService.GetDepartmentById(order.DepartmentId); var fill = new ResourceOrderFill(); fill.ResourceOrderItemId = item.ResourceOrderItemId; fill.DepartmentId = DepartmentId; fill.FillingUserId = UserId; fill.ContactName = data.Name; fill.ContactNumber = data.Number; fill.Note = data.Note; fill.LeadUserId = data.LeadUserId; fill.FilledOn = DateTime.UtcNow; if (order.AutomaticFillAcceptance) { fill.Accepted = true; fill.AcceptedOn = DateTime.UtcNow; if (settings != null && settings.DefaultResourceOrderManagerUserId != null) { fill.AcceptedUserId = settings.DefaultResourceOrderManagerUserId; } else { fill.AcceptedUserId = department.ManagingUserId; } } fill.Units = new List <ResourceOrderFillUnit>(); foreach (var unit in data.Units) { var itemUnit = new ResourceOrderFillUnit(); itemUnit.UnitId = unit; fill.Units.Add(itemUnit); } var savedFill = await _resourceOrdersService.CreateFill(fill); return(Json(new { id = savedFill.ResourceOrderFillId, error = model.Error, errorMessage = HttpUtility.UrlEncode(model.ErrorMessage) })); }