public IActionResult Start([FromBody] OneTableHash data) { if (ModelState.IsValid) { using (var db = new RaidaContext()) { List <SyncMemberInfo> syncData = db.Members.Select(it => new SyncMemberInfo() { Descript = it.description_fragment, LastUse = it.last_use, Login = it.login, NickName = it.nick_name, Password = it.pass, Online = it.online, Photo = it.photo_fragment, Hash = SyncData.GetHash(it) }).ToList(); var memberInfo = CollectionData(data.ActualMembers, syncData); List <SyncGroupInfo> syncDataGroup = db.Groups.Select(it => new SyncGroupInfo() { Id = it.group_id, Name = it.group_name_part, PeerToPeer = it.one_to_one, Photo = it.photo_fragment, Privated = it.privated, Owner = it.owner.login, Hash = SyncData.GetHash(it) }).ToList(); var groupInfo = CollectionData(data.ActualGroups, syncDataGroup); List <SyncMembInGroupInfo> syncDataMiG = db.MemberInGroup.Include(m => m.member).ToList().Select( it => new SyncMembInGroupInfo() { GroupId = it.groupId, Login = it.member.login, Hash = SyncData.GetHash(it) }).ToList(); var mingInfo = CollectionData(data.ActualMinG, syncDataMiG); var objRez = CryptoUtils.EncryptDataAES(new { memberInfo, groupInfo, mingInfo }); objRez.key = CryptoUtils.EncryptKeyRSA(data.PublicKey, objRez.key); return(new ObjectResult(new { objRez.key, objRez.code })); } } return(NotFound()); }