Как использовать асинхронный метод в контроллере API для Xamarin - PullRequest
0 голосов
/ 05 мая 2018

Я совершенно новичок в Xamarin и, используя его в работе, я обычно делал следующее:

 // GET: api/Jobs
 public  async Task<string> GetJobs()
 {
     return await db.GetAllJobsAsync();
 }

У меня вопрос: я хочу вернуть все задания, которые есть у инженера, поэтому у меня есть этот метод в моем слое доступа к данным, затем я использую свой API для возврата json из него, но как мне вызвать нижеприведенное в моем контроллере API Jobs API

/// <summary>
/// Get All Jobs Assigned to the work person.
/// </summary>
/// <param name="id"></param>
/// <returns></returns>

public async Task<string> GetAllJobsAsync(int Id)
{
        string json;

        using (FuelCallManagmentEntities _db = new FuelCallManagmentEntities())
        {
            var task = Task.Run(() => _db.Jobs.Where(w => w.EngineerId == Id).ToList());
            List<Job> alljobs = await task;

            json = JsonConvert.SerializeObject(alljobs, Formatting.Indented);
        }

        return json;
}

У меня также вопрос, должен ли я возвращать json, конечно, это не так безопасно и каков наилучший способ защитить пароли, если использовать этот способ.

Я бы хотел использовать Azure, но это должно быть безопасное решение для нашей компании.

Я также получаю вышеуказанную ошибку при попытке запустить приведенный выше код.

{"Message": "Произошла ошибка.", "ExceptionMessage": "Типу ObjectContent`1 'не удалось сериализовать тело ответа для типа контента' application / json; charset = utf-8 '." "ExceptionType": "S

1 Ответ

0 голосов
/ 05 мая 2018

Рефакторинг вашего метода:

public async Task<IActionResult> GetAllJobsAsync(int Id)
{
    using (var _db = new FuelCallManagmentEntities())
    {
        var alljobs = await _db.Jobs.Where(w => w.EngineerId == Id).ToListAsync();

        return Ok(alljobs);
    }
}

По второму вопросу; Это другой вопрос, который не по теме в SO ...

Насколько мне известно, сегодня стандарт заключается в том, чтобы хранить пароль в механизме Hash-Salt. Это видео очень хорошо объясняет этот механизм.

Кстати, вы никогда не должны возвращать пароли или иметь механизм для раскрытия паролей, которые вы храните.

...