C # Как получить только обновленные объекты из веб-API - PullRequest
0 голосов
/ 04 ноября 2018

Я опрашиваю данные моего углового приложения из веб-интерфейса c #. Каждый раз, когда все данные опрашиваются, хотя большая часть данных не изменилась. Я хотел бы опросить только те объекты, которые действительно были обновлены любым способом.

Это мой код в моем Controller.cs

 //Get all details of the available vehicles
        [HttpGet]
        [Route("api/details")]
        public object GetFleetStatusDetails()
        {

            var fmsData = this.fmsdb.Value.GetFleetStatusDetails();
            var data = fmsData.Entries;
            List<VehicleDetails> result = new List<VehicleDetails>();
            foreach (var item in data)
            { 
                if (item != null)
                {

                    var details = ConvertVehicleDetail(item);
                    result.Add(details);

                }

            }
            return result;
        }

Как вы видите, я конвертирую данные в VehicleDetails, которые я позже добавлю в свой список VehicleDetails. Данные, которые я получаю, представлены в формате JSON. Есть ли способ сравнить мой последний опрос с текущим опросом, не углубляясь в базу данных? Если так, то как бы я это сделал?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Не зная, что делает this.fmsdb.Value.GetFleetStatusDetails(); или схемы базы данных, которую вы называете, лучшим предположением будет создание двух конечных точек в API.

Первый будет использовать this.fmsdb.Value.GetFleetStatusDetails();, чтобы получить полный набор результатов. Как только данные были загружены из конечной точки, сохраните текущую дату / время в угловом представлении и передайте их второй конечной точке ...

Вторая конечная точка будет получать записи, которые были изменены с даты / времени, когда вы получили первый набор данных. Предполагается, что вы сохраняете обновленное время даты.

[HttpGet]
[Route("api/updateddetails")]
public object GetUpdatedFleetStatusDetails([FromUrl]DateTime date)
{
    var fmsData = this.fmsdb.Value.GetUpdatedFleetStatusDetails(date);
    return fmsData.Entries
        .Where(x => x != null)
        .Select(ConvertVehicleDetail);
}

Мог бы дать больше подробностей, если бы знал, что было в this.fmsdb.Value.GetFleetStatusDetails ()

PS Не проверял этот код.

0 голосов
/ 04 ноября 2018

Я предлагаю сохранить последнее состояние либо через локальное хранилище браузера, либо с помощью ngrx.

...