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);
        }