/// <summary> /// Handles session creation event. /// </summary> /// <param name="session">The created session.</param> private void NewSessionConnected(WebSocketSession session) { InformationManager.DisplayMessage(new InformationMessage("Bannerboard client connected")); // Send handshake var model = new HandshakeModel { Version = _version, }; session.Send(model.ToJsonArraySegment()); // Initialize all widgets _widgets.ForEach(w => { try { w.Init(session); } catch { InformationManager.DisplayMessage(new InformationMessage($"Error while initializing {w.GetType().Name}!")); } }); }
public HttpStatusCode StartHandshake(System.Web.HttpRequestBase request, HandshakeModel model) { request.InputStream.Seek(0, SeekOrigin.Begin); string jsonData = new StreamReader(request.InputStream).ReadToEnd(); string hash = request.Headers["x-hash"]; if (!HashIsOkHandshake(hash, jsonData)) { var myHash = Security.Hash.GenerateHash(AppInformation.Instance.HandshakeUrl, jsonData); string errorMessage = GetErrorHandshakeHashNotOk(model, jsonData, hash, myHash); Error.ErrorLogger.ErrorOccurred(errorMessage); return(HttpStatusCode.ServiceUnavailable); } var repo = RepositoryContainer.ConnectionRepo; var connection = repo.GetForApiPublic(model.api_public); if (connection != null) { string errorMessage = $"Trying to do a handshake with {model.api_public}, but there is already a connection for this exact api_public."; Error.ErrorLogger.ErrorOccurred(errorMessage); return(HttpStatusCode.ServiceUnavailable); } repo.AddConnection(model.api_public, model.api_secret, model.api_root, model.return_url); return(HttpStatusCode.OK); }
private static string GetErrorHandshakeHashNotOk(HandshakeModel model, string jsonData, string hash, string myHash) { return($@"Trying to do a handshake with api_public ({model.api_public}), but it went wrong. <br />Api public: {model.api_public} <br />Api secret: {model.api_secret} <br />Api root: {model.api_root} <br />Return url: {model.return_url} <br />X-Hash: {hash} <br />Handshake url: {AppInformation.Instance.HandshakeUrl} <br />My hash: {myHash} <br />Json data: {jsonData}"); }
public async Task <ActionResult> Index() { var result = new HandshakeModel(); var dbResult = await bll.SchoolPosts().ListAsync(); result.city.Add(new CountryViewModel { Id = 0, Name = "Tümü" }); foreach (var item in dbResult) { result.view.Add(new HandshakeViewModel { SchoolName = item.Schools.Name, Name = item.Name, Category = item.Category1.Name, price = item.Price, Id = item.Id, phone = item.Schools.Phone_Number, email = item.Schools.E_Mail }); } var city = await bll.City().ListByAsync(); foreach (var item in city) { result.city.Add(new CountryViewModel { Id = item.Id, Name = item.Name }); } var category = await bll.Category().ListAsync(); result.cat.Add(new Category { Id = "0", Name = "Tümü" }); foreach (var item in category) { result.cat.Add(new Category { Id = item.Id, Name = item.Name }); } return(View(result)); }