private static TaskDto CreateTaskDto(DispatchRequest request) { return new TaskDto { Name = request.Type.Name, PickedUpDate = request.PickedUpDate }; }
public async Task<IHttpActionResult> CreateNewRequest(int typeId) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var type = await db.Types.FirstOrDefaultAsync(t => t.Id == typeId); if (type == null) { return BadRequest($"Nieznany typ zlecenia {typeId}"); } if (type.ForSelf) { return BadRequest($"Zlecenie typu '{type.Name}' jest zleceniem specjalnym."); } var existingRequest = await db.Requests.FirstOrDefaultAsync(r => r.Active && r.RequestingUserName == User.Identity.Name && r.TypeId == typeId); if (existingRequest != null) { return BadRequest($"Zlecenie typu '{type.Name}' dla użytkownika '{User.Identity.Name}' już istnieje."); } var newRequest = new DispatchRequest { RequestingUserName = User.Identity.Name, Active = true, TypeId = typeId, CreationDate = DateTime.UtcNow, CompletionDate = null, Type = type}; db.Requests.Add(newRequest); await db.SaveChangesAsync(); return CreatedAtRoute("DefaultApi", new { controller = "DispatchRequest",id = newRequest.Id }, newRequest); }