public static Buddy MapToBuddyModel(this BuddyRequest request) { return(new Buddy { MainUserId = request.MainUserId, BuddyUserId = request.BuddyUserId }); }
public async Task EditBuddyRequestAsync(int receivingGeneralUserId, int requestingGeneralUserId, BuddyRequestState state) { BuddyRequest buddyRequest = _databaseContext.BuddyRequests .Where(buddy => buddy.ReceivingGeneralUserId == receivingGeneralUserId && buddy.RequestingGeneralUserId == requestingGeneralUserId) .FirstOrDefault() ?? throw new ArgumentException($"No buddy request from user {requestingGeneralUserId}."); buddyRequest.RequestState = state; await _databaseContext.SaveChangesAsync(); }
/// <summary> /// Initiate "I'm not your buddy guy" banter /// </summary> /// <param name="duration">Duration in miliseconds on how long the banter should last</param> /// <returns></returns> public async Task StartBuddyGuy(long duration) { using (var call = buddyGuyClient.ImNotYour()) { Stopwatch stopwatch = Stopwatch.StartNew(); Console.WriteLine($"Enjoy {duration/1000} seconds of banter :)"); BuddyRequest request = new BuddyRequest { Message = "friend" }; Console.WriteLine($"Client: You'll regret this day {request.Message}"); // Initiate stream with first request await call.RequestStream.WriteAsync(request); // Define what to do when response is received var responseReaderTask = Task.Run(async() => { while (await call.ResponseStream.MoveNext()) { // Receive answer from server Console.WriteLine($"Server: I'm not your {request.Message} {call.ResponseStream.Current.Message}"); await Task.Delay(1000); if (stopwatch.ElapsedMilliseconds < duration) { // Prepare new request request = new BuddyRequest { Message = BuddyGuyDictionary[call.ResponseStream.Current.Message] }; Console.WriteLine($"Client: I'm not your {call.ResponseStream.Current.Message} {request.Message}"); await call.RequestStream.WriteAsync(request); } else { Console.WriteLine($"{duration/1000} seconds have passed .. stopping the banter"); // Close request stream to notify server that there are no more requests await call.RequestStream.CompleteAsync(); } } }); // Start listening for responses await responseReaderTask; } Console.WriteLine("\r\nPress ENTER to return to main menu"); Console.ReadLine(); }
public bool IsExistingBuddyRequest(int generalUserId1, int generalUserId2) { // TODO: See if rejected requests can be requested again BuddyRequest existingBuddyRequest = _databaseContext.BuddyRequests .Where(buddy => (buddy.ReceivingGeneralUserId == generalUserId1 && buddy.RequestingGeneralUserId == generalUserId2) || (buddy.ReceivingGeneralUserId == generalUserId2 && buddy.RequestingGeneralUserId == generalUserId1) && (buddy.RequestState != BuddyRequestState.Rejected) ) .FirstOrDefault(); return(existingBuddyRequest != default); }
private void ReceiveMessageHandler() { while (true) { try { var result = _messManager.FetchLongNotification(_seq + 1); //logger.Info("Send long Notification request"); //if (_debug) logger.Info("Request seq: " + (_seq + 1)); JObject o = JObject.Parse(result.Trim()); JArray a = JArray.Parse(o["responses"].ToString()); for (int i = 0; i < a.Count; i++) { try // message { o = JObject.Parse(a[i].ToString()); var message = JObject.Parse(o["message"].ToString()); var mNewSeq = int.Parse(message["sequence"].ToString()); if (mNewSeq > _seq) { _seq = mNewSeq; } Message messObj = new Message(message["sender"].ToString(), message["receiver"].ToString(), message["msg"].ToString(), mNewSeq); //logger.Info("============================================"); //logger.Info("Received an message from " + messObj.Sender + ": " + messObj.Msg); //logger.Info("============================================"); ProcessRequest(messObj); } catch (Exception e) { } try { //requestBuddy var requestBuddy = JObject.Parse(o["buddyAuthorize"].ToString()); var rbNewSeq = int.Parse(requestBuddy["sequence"].ToString()); if (rbNewSeq > _seq) { _seq = rbNewSeq; } BuddyRequest buddyReq = new BuddyRequest(_fetchData, _signManager, rbNewSeq, requestBuddy["sender"].ToString(), requestBuddy["receiver"].ToString()); buddyReq.ResponseContact(true, ""); //logger.Info("============================================"); //logger.Info("Received add friend request from " + buddyReq.Sender); //logger.Info("============================================"); } catch (Exception e) { } } } catch (Exception e) { if (_debug) { //logger.Info(e.Message); } if (e.Message.Contains("(403)")) { if (_debug) { //logger.Info("============================================"); //logger.Info("Re-LogOn"); //logger.Info("============================================"); } LogOn(); return; } } Thread.Sleep(5000); } }
public HttpResponseMessage Create(BuddyRequest request) { _unitOfWork.BuddyRepository.Insert(request.MapToBuddyModel()); _unitOfWork.Save(); return(new HttpResponseMessage(HttpStatusCode.OK)); }