public bool InsertContact(AddContactRequest contact, string clientId)
        {
            Log.Info("InsertContact init...");
            Log.Debug("Adding contact for client id " + clientId);
            var success = true;

            contact.ClientId = clientId;
            try
            {
                var     request           = ResolveRequest(contact);
                var     response          = _restClient.Execute(request) as RestResponse;
                dynamic processedResponse = ProcessResponse(response);

                if (!IsSuccess(processedResponse))
                {
                    throw new Exception("API returns error.");
                }
            }
            catch (Exception ex)
            {
                Log.Error("Contact not added due to error: " + ex.Message);
                success = false;
            }
            Log.Info("InsertContact end.");
            return(success);
        }
Beispiel #2
0
        public async Task TestGivenContactIsStoredInGivenRepository()
        {
            var respository      = new InMemoryContactRepository();
            var interactor       = new AddContactInteractor(respository, new InMemoryMessenger());
            var contactAddress   = new Address("GUEOJUOWOWYEXYLZXNQUYMLMETF9OOGASSKUZZWUJNMSHLFLYIDIVKXKLTLZPMNNJCYVSRZABFKCAVVIW");
            var publicKeyAddress = Seed.Random().Value;
            var request          = new AddContactRequest
            {
                ContactAddress   = contactAddress,
                RequestAddress   = new Address(Seed.Random().Value),
                ImagePath        = "kjasdjkahsda89dafhfafa",
                Name             = "Chiota User",
                PublicKeyAddress = new Address(publicKeyAddress),
                UserPublicKey    = InMemoryContactRepository.NtruKeyPair.PublicKey
            };

            await interactor.ExecuteAsync(request);

            Assert.AreEqual(1, respository.PersistedContacts.Count);

            var contact = respository.PersistedContacts[0];

            Assert.AreEqual(publicKeyAddress, contact.PublicKeyAddress);
            Assert.IsFalse(contact.Rejected);
            Assert.IsNotNull(contact.ChatAddress);
        }
Beispiel #3
0
        public async Task TestNoContactInformationCanBeFoundShouldReturnErrorCode()
        {
            var contactRepositoryMock = new Mock <IContactRepository>();

            contactRepositoryMock.Setup(c => c.LoadContactInformationByAddressAsync(It.IsAny <Address>()))
            .Throws(new MessengerException(ResponseCode.NoContactInformationPresent));

            var messenger      = new InMemoryMessenger();
            var respository    = new InMemoryContactRepository();
            var interactor     = new AddContactInteractor(contactRepositoryMock.Object, messenger);
            var contactAddress = new Address("GUEOJUOWOWYEXYLZXNQUYMLMETF9OOGASSKUZZWUJNMSHLFLYIDIVKXKLTLZPMNNJCYVSRZABFKCAVVIW");
            var request        = new AddContactRequest
            {
                ContactAddress   = contactAddress,
                RequestAddress   = new Address(Seed.Random().Value),
                ImagePath        = "kjasdjkahsda89dafhfafa",
                Name             = "Chiota User",
                PublicKeyAddress = new Address(Seed.Random().Value),
                UserPublicKey    = InMemoryContactRepository.NtruKeyPair.PublicKey
            };

            var response = await interactor.ExecuteAsync(request);

            Assert.AreEqual(ResponseCode.NoContactInformationPresent, response.Code);
        }
Beispiel #4
0
        public async Task <AddContactResponse> AddContact(AddContactRequest addContactRequest)
        {
            this.logger.LogInfoMessage(this.GetType(), "Begin AddContact");

            AddContactResponse addContactResponse = new AddContactResponse();

            try
            {
                ContactData cd = this.ConvertContactMessageToObject(addContactRequest);

                BaseResponse response = await this.contact.AddContact(cd);

                addContactResponse.Build(response.ReturnValueInt, response.ReturnValueString, response.ReturnValueCustomString);
                if (response.ReturnValueCustomObject != null)
                {
                    addContactResponse.NewContactID = (Int64)response.ReturnValueCustomObject;
                }
            }
            catch (Exception ex)
            {
                addContactResponse.RunTimeException(ex, "Exception while adding contact.");
                this.logger.LogErrorMessage(this.GetType(), "Exception in AddContact", ex);
            }

            this.logger.LogInfoMessage(this.GetType(),
                                       String.Format("End AddContact:{0}", addContactResponse.ReturnValueInt));

            return(addContactResponse);
        }
Beispiel #5
0
        public async void add([FromBody] AddContactRequest request)
        {
            using (var dbContext = new PulseDbContext())
            {
                var account = await dbContext.Accounts
                              .Include(a => a.Contacts)
                              .Where(a => a.AccountId == request.AccountId)
                              .FirstOrDefaultAsync();

                if (account == null)
                {
                    return;
                }

                foreach (var contact in request.Contacts)
                {
                    dbContext.Contacts.Add(contact);
                    account.Contacts.Add(contact);

                    await FirebaseHelper.SendMessage(account, "added_contact", new
                    {
                        phone_number = contact.PhoneNumber,
                        name         = contact.Name,
                        type         = contact.ContactType,
                        color        = contact.Color,
                        color_dark   = contact.ColorDark,
                        color_light  = contact.ColorLight,
                        color_accent = contact.ColorAccent
                    });
                }

                await dbContext.SaveChangesAsync();
            }
        }
Beispiel #6
0
        public Task <AddContactResponse> AddContact(AddContactRequest addContactRequest)
        {
            return(Task.Run(() =>
            {
                AddContactResponse response = new AddContactResponse();

                if (this.contactDataList.Exists(c => c.EmailAddress == addContactRequest.EmailAddress))
                {
                    response.NewContactID = 0;
                    response.ReturnValueInt = -13;
                    response.ReturnValueString = "Email Address already Exists";
                    response.ReturnValueCustomString = "Exception in Add";
                }
                else
                {
                    this.contactDataList.Add(new ContactData(6,
                                                             addContactRequest.FirstName,
                                                             addContactRequest.LastName,
                                                             addContactRequest.EmailAddress,
                                                             addContactRequest.PhoneNumber,
                                                             1));
                    response.NewContactID = 6;
                    response.ReturnValueInt = 0;
                    response.ReturnValueString = "";
                    response.ReturnValueCustomString = "Contact added Successfully.";
                }

                response.HTTPReturnCode = (Int16)HttpStatusCode.OK;
                response.APIVersion = "1.0.0.0";
                response.ReturnValueCustomObject = null;

                return response;
            }));
        }
Beispiel #7
0
        static void Main(string[] args)
        {
            XmlConfigurator.Configure();
            Log.Info("Main program init...");

            Log.Debug("Parsing clients csv file...");
            var clients = CsvCollector.Parse <AddClientRequest>(@ConfigManager.ClientsCsv);

            Log.Debug("Parsing contacts csv file...");
            var contacts = new List <AddContactRequest>(CsvCollector.Parse <AddContactRequest>(@ConfigManager.ContactsCsv));
            var rnd      = new Random();

            Log.Debug("Parsing done.");

            foreach (var client in clients)
            {
                Log.Info("Adding clients, contacts and orders loop start.");
                string clientId;
                if (!ApiController.InsertClient(client, out clientId))
                {
                    continue;
                }
                // adding contacts
                var numOfContacts = rnd.Next(4);
                if (numOfContacts == 0 || contacts.Count == 0)
                {
                    var contactWithNoData = new AddContactRequest();
                    if (!ApiController.InsertContact(contactWithNoData, clientId))
                    {
                        continue;
                    }
                }
                else
                {
                    for (var i = 0; i <= numOfContacts; i++)
                    {
                        var contact = contacts[0];
                        contacts.RemoveAt(0);
                        if (!ApiController.InsertContact(contact, clientId))
                        {
                            continue;
                        }
                    }
                }
                // adding orders
                if (!ApiController.InsertOrder(clientId))
                {
                    continue;
                }
                if (!ApiController.ActivateSubscriptions(clientId))
                {
                    continue;
                }
                Log.Info("Adding clients, contacts and orders loop end.");
            }

            //ApiController.ActivateSubscriptions("80");
            Log.Info("Main program end.");
        }
 public IActionResult AddContact(AddContactRequest request)
 {
     if (request == null)
     {
         return(BadRequest(new { message = "Please check your input" }));
     }
     return(Ok(contactRepository.AddContact(request)));
 }
Beispiel #9
0
        public async Task<IActionResult> AddContact(AddContactRequest addContactRequest)
        {
            var result = await _mediator.Send(addContactRequest.MapToCommand());

            var potentialBadResult = GeneratePotentialBadResult(result);

            return potentialBadResult ?? Created(Url.Action(nameof(GetContactById), new { id = result.Item}), result.Item);
        }
Beispiel #10
0
        private ContactData ConvertContactMessageToObject(AddContactRequest addContactRequest)
        {
            ContactData c = new ContactData();

            c.FirstName    = addContactRequest.FirstName;
            c.LastName     = addContactRequest.LastName;
            c.EmailAddress = addContactRequest.EmailAddress;
            c.PhoneNumber  = addContactRequest.PhoneNumber;
            c.Status       = 1;

            return(c);
        }
        public HttpResponseMessage AddContact(AddContactRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            ItemResponse <int> response = new ItemResponse <int>();

            response.Item = ContactsService.UpdateContact(model);
            return(Request.CreateResponse(response));
        }
Beispiel #12
0
        public async Task <AddContactResult> AddContactAsync(string contactName)
        {
            if (AuthToken == null)
            {
                throw new InvalidOperationException("The user is not authenticated");
            }

            AddContactRequest  request  = new AddContactRequest(AuthToken, contactName);
            AddContactResponse response = await communicationService.SendAsync(request) as AddContactResponse;

            return(response.Result);
        }
        public async Task TestContactCanNotBeAddedToContactRepositoryShouldReturnErrorCode()
        {
            var respository = new ExceptionContactRepository();
            var interactor  = new AddContactInteractor(respository, new InMemoryMessenger());
            var request     = new AddContactRequest
            {
                ContactAddress   = new Address(),
                RequestAddress   = new Address(Seed.Random().Value),
                ImageHash        = "kjasdjkahsda89dafhfafa",
                Name             = "Chiota User",
                PublicKeyAddress = new Address(Seed.Random().Value)
            };

            var response = await interactor.ExecuteAsync(request);

            Assert.AreEqual(ResponseCode.CannotAddContact, response.Code);
        }
Beispiel #14
0
    AddContactRequest GetRequestInfo()
    {
        // Get the Json from the POST.
        string      strJson = String.Empty;
        HttpContext context = HttpContext.Current;

        context.Request.InputStream.Position = 0;
        using (StreamReader inputStream = new StreamReader(context.Request.InputStream))
        {
            strJson = inputStream.ReadToEnd();
        }

        // Deserialize the Json.
        AddContactRequest req = JsonConvert.DeserializeObject <AddContactRequest>(strJson);

        return(req);
    }
        public IActionResult AddContact([FromBody] AddContactRequest model)
        {
            try
            {
                Log.Information($"Adding contact {model.ContactId} for user {model.UserId}");

                var resultMessage = _commSvc.AddToUserContacts(model.UserId, model.ContactId);
                return(Ok(new
                {
                    message = resultMessage
                }));
            }
            catch (Exception ex)
            {
                Log.Error($"Failed to add ontact {model.ContactId} for user {model.UserId} : {ex.Message}");
            }
            return(StatusCode(500));
        }
Beispiel #16
0
 public WrapResponseResult <ResponseWrapper <BaseContactResponse> > Add(AddContactRequest request)
 {
     return(new WrapResponseResult <ResponseWrapper <BaseContactResponse> >(() =>
     {
         if (request != null && ModelState.IsValid)
         {
             ResponseWrapper <BaseContactResponse> response = null;
             response = _contactService.Add(request);
             return response;
         }
         else
         {
             ResponseWrapper <BaseContactResponse> response = null;
             response = ResponseWrapper <BaseContactResponse> .GetBadRequestErrorResponse();
             return response;
         }
     }, this.Request));
 }
        public async Task TestUnkownExceptionIsThrownShouldReturnErrorCode()
        {
            var messenger      = new ExceptionMessenger(new Exception("Hi"));
            var respository    = new InMemoryContactRepository();
            var interactor     = new AddContactInteractor(respository, messenger);
            var contactAddress = new Address("GUEOJUOWOWYEXYLZXNQUYMLMETF9OOGASSKUZZWUJNMSHLFLYIDIVKXKLTLZPMNNJCYVSRZABFKCAVVIW");
            var request        = new AddContactRequest
            {
                ContactAddress   = contactAddress,
                RequestAddress   = new Address(Seed.Random().Value),
                ImageHash        = "kjasdjkahsda89dafhfafa",
                Name             = "Chiota User",
                PublicKeyAddress = new Address(Seed.Random().Value)
            };

            var response = await interactor.ExecuteAsync(request);

            Assert.AreEqual(ResponseCode.UnkownException, response.Code);
        }
        public async Task TestChatPasKeyIsSentViaMessenger()
        {
            var messenger      = new InMemoryMessenger();
            var respository    = new InMemoryContactRepository();
            var interactor     = new AddContactInteractor(respository, messenger);
            var contactAddress = new Address("GUEOJUOWOWYEXYLZXNQUYMLMETF9OOGASSKUZZWUJNMSHLFLYIDIVKXKLTLZPMNNJCYVSRZABFKCAVVIW");
            var request        = new AddContactRequest
            {
                ContactAddress   = contactAddress,
                RequestAddress   = new Address(Seed.Random().Value),
                ImageHash        = "kjasdjkahsda89dafhfafa",
                Name             = "Chiota User",
                PublicKeyAddress = new Address(Seed.Random().Value)
            };

            var response = await interactor.ExecuteAsync(request);

            Assert.AreEqual(2, messenger.SentMessages.Count);
            Assert.AreEqual(ResponseCode.Success, response.Code);
        }
 public void AddContact(AddContactRequest request)
 {
     try
     {
         using (var repo = new Data.ContactsRepository())
         {
             var clist = repo.GetContactList(request.contactlist);
             if (!clist.ContactIds.Contains(request.contact))
             {
                 clist.ContactIds.Add(request.contact);
             }
             repo.UpdateContactList(clist);
         }
     }
     catch (Exception ex)
     {
         Logger.DebugException("AddContact failed", ex);
         throw;
     }
 }
Beispiel #20
0
        public ResponseWrapper <BaseContactResponse> Add(AddContactRequest request)
        {
            ResponseWrapper <BaseContactResponse> response;

            response = ResponseWrapper <BaseContactResponse> .GetInternalServerErrorResponse();

            try
            {
                object parameters = new
                {
                    FirstName   = request.FirstName,
                    LastName    = request.LastName,
                    PhoneNumber = request.PhoneNumber,
                    Email       = request.Email,
                    Status      = request.Status
                };

                string errorCode, errorMessage;
                bool   result = false;

                var transaction = _contactDAL.GetByParam(parameters, DBCommands.USP_ContactDetails_Add, out result, out errorMessage, out errorCode);
                if (result == false)
                {
                    response = ResponseWrapper <BaseContactResponse> .GetForbiddenErrorResponse(errorMessage);
                }
                else
                {
                    response = ResponseWrapper <BaseContactResponse> .GetSuccessResponse();

                    response.data = new BaseContactResponse();
                    response.data = Mapper.Map <BaseContactResponse>(transaction);
                }
            }
            catch (Exception ex)
            {
                response = ResponseWrapper <BaseContactResponse> .GetForbiddenErrorResponse(ex.Message);

                LogManager.WriteError("ContactServices:Add" + ex.Message);
            }
            return(response);
        }
        public async Task <AddContactResponse> AddContact(AddContactRequest addContactRequest)
        {
            this.logger.LogInfoMessage(this.GetType(), "Begin AddContact");
            AddContactResponse addContactResponse = new AddContactResponse();

            this.CheckInVariants(addContactRequest, addContactResponse);

            // Validate Request
            if (addContactResponse.ReturnValueInt == 0)
            {
                addContactRequest.Validate(addContactResponse, this.logger);
            }

            if (addContactResponse.ReturnValueInt == 0)
            {
                try
                {
                    Task <AddContactResponse> task = this.core.AddContact(addContactRequest);
                    await task;

                    addContactResponse.ReturnValueInt          = task.Result.ReturnValueInt;
                    addContactResponse.ReturnValueString       = task.Result.ReturnValueString;
                    addContactResponse.ReturnValueCustomString = task.Result.ReturnValueCustomString;
                    addContactResponse.NewContactID            = task.Result.NewContactID;
                }
                catch (Exception e)
                {
                    addContactResponse.RunTimeException(e, "Exception while adding contact.");
                }
            }

            if (addContactResponse.ReturnValueInt == 0)
            {
                addContactResponse.Success("Contact added Successfully.");
            }

            this.logger.LogInfoMessage(this.GetType(),
                                       String.Format("End AddContact:{0}", addContactResponse.ReturnValueInt));

            return(addContactResponse);
        }
Beispiel #22
0
        public async Task TestMessengerCannotSendMessageShouldReturnErrorCodeAndNotWriteToContactRepository()
        {
            var messenger      = new ExceptionMessenger();
            var respository    = new InMemoryContactRepository();
            var interactor     = new AddContactInteractor(respository, messenger);
            var contactAddress = new Address("GUEOJUOWOWYEXYLZXNQUYMLMETF9OOGASSKUZZWUJNMSHLFLYIDIVKXKLTLZPMNNJCYVSRZABFKCAVVIW");
            var request        = new AddContactRequest
            {
                ContactAddress   = contactAddress,
                RequestAddress   = new Address(Seed.Random().Value),
                ImagePath        = "kjasdjkahsda89dafhfafa",
                Name             = "Chiota User",
                PublicKeyAddress = new Address(Seed.Random().Value),
                UserPublicKey    = InMemoryContactRepository.NtruKeyPair.PublicKey
            };

            var response = await interactor.ExecuteAsync(request);

            Assert.AreEqual(ResponseCode.MessengerException, response.Code);
            Assert.AreEqual(0, respository.PersistedContacts.Count);
        }
Beispiel #23
0
        public async Task AddContact_InValidInput()
        {
            // Arrange
            ICore              core       = new MockCore();
            ILogger            logger     = new Logger();
            ContactsController controller = new ContactsController(core, logger);
            AddContactRequest  request    = new AddContactRequest();

            request.FirstName    = "";
            request.LastName     = "Lonkar6";
            request.EmailAddress = "v.l4a.in";
            request.PhoneNumber  = "+91 611.111.111";

            // Act
            AddContactResponse response = await(controller.AddContact(request));

            // Assert
            Assert.IsNotNull(response);
            Assert.AreEqual(response.ReturnValueInt, BaseResponse.RESPONSE_INVALIDREQUEST);
            Assert.AreEqual(response.ReturnValueCustomString, "FirstName is empty.InValid Email Address.");
        }
 public bool AddContact(AddContactRequest request)
 {
     if (request != null)
     {
         int secretNumber = 5306;
         request.userId = request.userId - secretNumber;
         var result = _db.Contacts.Where(a => a.registerId == request.userId).FirstOrDefault();
         if (result == null)
         {
             Contact contact = new Contact
             {
                 Email      = request.email,
                 Mobile     = request.mobile,
                 registerId = request.userId
             };
             _db.Contacts.Add(contact);
             _db.SaveChanges();
             return(true);
         }
     }
     return(false);
 }
Beispiel #25
0
        public async Task AddContact_EmailDuplicate()
        {
            // Arrange
            ICore              core       = new MockCore();
            ILogger            logger     = new Logger();
            ContactsController controller = new ContactsController(core, logger);
            AddContactRequest  request    = new AddContactRequest();

            request.FirstName    = "Vijay6";
            request.LastName     = "Lonkar6";
            request.EmailAddress = "*****@*****.**";
            request.PhoneNumber  = "+91 611.111.111";

            // Act
            AddContactResponse response = await(controller.AddContact(request));

            // Assert
            Assert.IsNotNull(response);
            Assert.AreEqual(response.ReturnValueInt, BaseResponse.RESPONSE_RUNTIMEEXCEPTION);
            Assert.AreEqual(response.ReturnValueString, "Email Address already Exists");
            Assert.AreEqual(response.ReturnValueCustomString, "Exception in Add");
        }
        public bool Addcontact(AddContactRequest request)
        {
            if (request != null)
            {
                Contact contacts = new Contact();
                contacts.First_Name = request.First_Name;
                contacts.Last_Name  = request.Last_Name;
                contacts.Phone      = request.Phone;
                contacts.Email      = request.Email;
                contacts.Gender     = request.Gender;
                contacts.Created_On = DateTime.Now;
                contacts.Updated_On = DateTime.Now;
                contacts.Isactive   = request.Isactive;

                contacts.Password = request.Password;

                _db.Contacts.Add(contacts);
                _db.SaveChanges();
                return(true);
            }
            return(false);
        }
Beispiel #27
0
        public async Task AddContact_Success()
        {
            // Arrange
            ICore              core       = new MockCore();
            ILogger            logger     = new Logger();
            ContactsController controller = new ContactsController(core, logger);
            AddContactRequest  request    = new AddContactRequest();

            request.FirstName    = "Vijay6";
            request.LastName     = "Lonkar6";
            request.EmailAddress = "*****@*****.**";
            request.PhoneNumber  = "+91 611.111.111";

            // Act
            AddContactResponse response = await(controller.AddContact(request));

            // Assert
            Assert.IsNotNull(response);
            Assert.AreEqual(response.NewContactID, 6);
            Assert.AreEqual(response.ReturnValueInt, BaseResponse.RESPONSE_SUCCESS);
            Assert.AreEqual(response.ReturnValueCustomString, "Contact added Successfully.");
        }
Beispiel #28
0
        public async Task TestMessengerGetsCalledWithAddContactRequestAndContactJsonPayload()
        {
            var messenger        = new InMemoryMessenger();
            var respository      = new InMemoryContactRepository();
            var interactor       = new AddContactInteractor(respository, messenger);
            var contactAddress   = new Address("GUEOJUOWOWYEXYLZXNQUYMLMETF9OOGASSKUZZWUJNMSHLFLYIDIVKXKLTLZPMNNJCYVSRZABFKCAVVIW");
            var requestAddress   = Seed.Random().Value;
            var publicKeyAddress = Seed.Random().Value;

            var request = new AddContactRequest
            {
                ContactAddress   = contactAddress,
                RequestAddress   = new Address(requestAddress),
                ImagePath        = "kjasdjkahsda89dafhfafa",
                Name             = "Chiota User",
                PublicKeyAddress = new Address(publicKeyAddress),
                UserPublicKey    = InMemoryContactRepository.NtruKeyPair.PublicKey
            };

            await interactor.ExecuteAsync(request);

            Assert.AreEqual(2, messenger.SentMessages.Count);

            var sentMessage = messenger.SentMessages[0];

            Assert.AreEqual(contactAddress.Value, sentMessage.Receiver.Value);

            var decryptedPayload = NtruEncryption.Key.Decrypt(InMemoryContactRepository.NtruKeyPair, sentMessage.Payload.ToBytes());
            var sentPayload      = JsonConvert.DeserializeObject <Contact>(Encoding.UTF8.GetString(decryptedPayload));

            Assert.AreEqual("kjasdjkahsda89dafhfafa", sentPayload.ImagePath);
            Assert.AreEqual("Chiota User", sentPayload.Name);
            Assert.AreEqual(publicKeyAddress, sentPayload.PublicKeyAddress);
            Assert.AreEqual(requestAddress, sentPayload.ContactAddress);
            Assert.IsTrue(InputValidator.IsAddress(sentPayload.ChatAddress));
            Assert.IsTrue(InputValidator.IsAddress(sentPayload.ChatKeyAddress));
            Assert.IsTrue(sentPayload.Request);
            Assert.IsFalse(sentPayload.Rejected);
        }
Beispiel #29
0
        public async Task <Contact> AddContact(string login)
        {
            var contact = await HttpClientWrapper.GetAsync <Contact>(ApiEndpoints.GetUserInfo(login));

            var key     = _cryptographyProvider.AES.CreateKey();
            var request = new AddContactRequest()
            {
                ContactName  = login,
                SymmetricKey = _cryptographyProvider.RSA.Encrypt(key.Key, contact.PublicKey),
                IV           = _cryptographyProvider.RSA.Encrypt(key.IV, contact.PublicKey)
            };

            contact = await HttpClientWrapper.PostAsync <Contact>(ApiEndpoints.Add(_userSettings.User.Login, login), request);

            var properties = _propertyHandler.Load();

            properties.Keys.Add(login, key);
            _propertyHandler.Save(properties);
            _userSettings.Keys.TryAdd(login, key);

            _userSettings.User.Contacts.Add(contact);
            return(contact);
        }
Beispiel #30
0
        public AddContactResponse RequestContact(string senderName, string receiverName)
        {
            var sender   = this.Users.First(u => u.Name == senderName);
            var receiver = this.Users.First(u => u.Name == receiverName);

            var request = new AddContactRequest
            {
                Name             = sender.Name,
                ImagePath        = string.Empty,
                RequestAddress   = sender.RequestAddress,
                PublicKeyAddress = sender.PublicKeyAddress,
                ContactAddress   = receiver.PublicKeyAddress,
                UserPublicKey    = sender.NtruKeyPair.PublicKey
            };

            this.LastRequest = request;
            var response = InstanceBag.AddContactInteractor.ExecuteAsync(
                request).Result;

            if (response.Code == ResponseCode.Success)
            {
                sender.Contacts.Add(
                    new Contact
                {
                    IsApproved       = false,
                    Name             = receiver.Name,
                    NtruKeyPair      = receiver.NtruKeyPair,
                    PublicKeyAddress = receiver.PublicKeyAddress,
                    RequestAddress   = receiver.RequestAddress,
                    Seed             = receiver.Seed
                });
            }

            this.LastResponse = response;
            return(response);
        }
Beispiel #31
0
 public async Task <AddContactResponse> AddContact(AddContactRequest request)
 {
     return(await Client.Execute <AddContactRequest, AddContactResponse>(request));
 }