private string HandleAck() { Device buf = new Device(_headers["device_name"], "Empty"); buf.LastSync = DateTime.Now; if (DeviceStorage.Contains(_headers["device_name"])) { buf = DeviceStorage.GetDeviceByName(_headers["device_name"]); } else { if (DatabaseWrapper.IsDeviceExist(_headers["device_name"])) { buf = DatabaseWrapper.LoadDeviceFromDB(_headers["device_name"]).Device; } } buf.CurrentTime = Int64.Parse(_headers["local_time"]); var modules = ParseModulesFromHeaders(); foreach (var m in modules) { if (buf.IsModuleExist(m.Name)) { buf.ChangeModuleFromDevice(buf.GetModuleByName(m.Name), m); } else { buf.AddModule(m); } } if (!DeviceStorage.DeviceExists(_headers["device_name"])) { DeviceStorage.AddDevice(buf); } _resultInfo.Code = (int)RetCodes.OK; _resultInfo.Message = "Ok"; return(buf.GetQueueMessage()); }