Ejemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 /// <typeparam name="L">Latest</typeparam>
 /// <typeparam name="D">Data</typeparam>
 /// <param name="data"></param>
 /// <param name="device"></param>
 /// <returns></returns>
 internal static async Task <(int ret, Dic exceptions)> SaveAsync <L, D>(this ApplicationDbContext _context, Dictionary <string, object> data, Device device, DataSide dataSide) where L : DataStorage, new() where D : DataStorage, new()
Ejemplo n.º 2
0
        public async Task <ActionResult <AttributeLatest> > Attributes(string access_token, DataSide dataSide, string keys)
        {
            Dic exceptions = new Dic();

            var(ok, device) = _context.GetDeviceByToken(access_token);
            if (ok)
            {
                return(NotFound(new ApiResult <Dic>(ApiCode.NotFoundDevice, $"{access_token} not a device's access token", new Dic(new DicKV[] { new DicKV("access_token", access_token) }))));
            }
            else
            {
                var deviceId = device.Id;
                try
                {
                    var attributes = from dev in _context.AttributeLatest where dev.DeviceId == deviceId select dev;
                    var fs         = from at in await attributes.ToListAsync() where at.DataSide == dataSide && keys.Split(',', options : StringSplitOptions.RemoveEmptyEntries).Contains(at.KeyName) select at;

                    return(Ok(fs.ToArray()));
                }
                catch (Exception ex)
                {
                    return(BadRequest(new ApiResult(ApiCode.Exception, $"{deviceId}  {ex.Message}")));
                }
            }
        }