コード例 #1
0
        public static RegisteredCredential From(EthEventDTO eventDto)
        {
            var ret = new RegisteredCredential()
            {
                IsRevoked          = false,
                HashId             = eventDto.IndexedParameters[0].Value,
                CitizenAddress     = eventDto.NonIndexedParameters[0].Value,
                SubjectHashId      = eventDto.NonIndexedParameters[1].Value,
                StartDate          = DateTimeOffset.FromUnixTimeMilliseconds(long.Parse(eventDto.NonIndexedParameters[2].Value)).DateTime.ToUniversalTime(),
                CredentialCreation = DateTimeOffset.FromUnixTimeMilliseconds(long.Parse(eventDto.NonIndexedParameters[3].Value)).DateTime.ToUniversalTime(),
                Sex            = Enum.Parse <Sex>(eventDto.NonIndexedParameters[4].Value),
                Age            = short.Parse(eventDto.NonIndexedParameters[5].Value),
                CredentialType = Enum.Parse <CredentialType>(eventDto.NonIndexedParameters[7].Value),
                Reason         = Enum.Parse <InterruptionReason>(eventDto.NonIndexedParameters[8].Value)
            };

            var hasher  = new Geohasher();
            var hash    = Hex.HexToString(eventDto.NonIndexedParameters[6].Value);
            var decoded = hasher.Decode(hash);

            ret.Location = new Point(decoded.Item2, decoded.Item1);
            ret.Lat      = ret.Location.Coordinate.X;
            ret.Lon      = ret.Location.Coordinate.Y;
            SetSymptoms(ret, eventDto.NonIndexedParameters[9].Value);
            return(ret);
        }
コード例 #2
0
        private static void SetSymptoms(RegisteredCredential ret, string hex)
        {
            if (ret.CredentialType != CredentialType.Symptoms)
            {
                return;
            }
            var byteR = Hex.HexToBinary(hex).ToCharArray();

            if (byteR[0] == '0')
            {
                ret.HasNoSymptoms = true;
                return;
            }
            else
            {
                ret.HasSymptoms = true;
            }
            if (byteR[1] == '1')
            {
                ret.HasFever = true;
            }
            if (byteR[2] == '1')
            {
                ret.HasCought = true;
            }
            if (byteR[3] == '1')
            {
                ret.HasBreathingIssues = true;
            }
            if (byteR[4] == '1')
            {
                ret.HasLossSmell = true;
            }
            if (byteR[5] == '1')
            {
                ret.HasHeadache = true;
            }
            if (byteR[6] == '1')
            {
                ret.HasMusclePain = true;
            }
            if (byteR[7] == '1')
            {
                ret.HasSoreThroat = true;
            }
        }