Example #1
0
        private async void BtnSave_ClickedAsync(object sender, System.EventArgs e)
        {
            Stream sigimage = await signatureView.GetImageStreamAsync(SignatureImageFormat.Png);

            BinaryReader br = new BinaryReader(sigimage);

            br.BaseStream.Position = 0;
            Byte[] All    = br.ReadBytes((int)sigimage.Length);
            byte[] image  = (byte[])All;
            string base64 = Convert.ToBase64String(image);

            Random rnd = new Random();
            int    id  = rnd.Next();

            fileId = id.ToString();

            RequestSave request = new RequestSave()
            {
                FileId     = fileId,
                FileName   = "test.png",
                Base64File = base64
            };

            await PushFileToServer(request);

            signatureView.Clear();
            btnLoad.IsVisible = true;
        }
Example #2
0
            //SCRIPTINPUT (FS)
            public void HandleRequest(int ownID, int requesterID, Request_Options option, string requester)
            {
                if (!lookUpTable.Keys.Contains(requester))
                {
                    parent.printOut("ERROR: 0X006 @ CHAT_HANDLER/HANDLE_REQUEST");
                    throw new Exception("ERROR: 0X006 @ CHAT_HANDLER/HANDLE_REQUEST");
                }
                int position = GetRequestFromID(requester, requesterID);

                if (position == -1)
                {
                    parent.printOut("ERROR: 0X0001 @ CHAT_HANDLER/HANDLE_REQUEST");
                    throw new Exception("ERROR: 0X0001 @ CHAT_HANDLER/HANDLE_REQUEST");
                }
                RequestSave current = requests[position];

                switch (option)
                {
                case Request_Options.ACCEPT:
                    foreach (ChatModule cm in chatWindows.Values.ToList())
                    {
                        if (cm.IsEqual(ownID))
                        {
                            if (current.requestsOpen > 0)
                            {
                                cm.SetChatPartner();
                                foreach (string mes in current.messages)
                                {
                                    cm.AddText(mes);
                                }
                            }
                        }
                        AssignNext(cm, position, requester);
                    }
                    RemoveRequestFromList(position, false);
                    break;

                case Request_Options.DECLINE:
                    AssignNext(chatWindows[ownID], position, requester);
                    current.requestsOpen--;
                    if (current.requestsOpen <= 0)
                    {
                        RemoveRequestFromList(position, true);
                    }
                    break;

                case Request_Options.DECLINE_ALL:
                    foreach (ChatModule cm in chatWindows.Values.ToList())
                    {
                        AssignNext(cm, position, requester);
                    }
                    RemoveRequestFromList(position, true);
                    break;
                }
            }
Example #3
0
        async Task PushFileToServer(RequestSave request)
        {
            var apiReponse = RestService.For <IApiSaveFile>(_host);
            var reponse    = await apiReponse.SaveFile(request);

            if (reponse.Success == true)
            {
                await DisplayAlert("Notice", "Save Image Success", "OK");
            }
            else
            {
                await DisplayAlert("Notice", "Save Image Fail", "OK");
            }
        }
Example #4
0
        private void MainWebView_ScriptNotify(object sender, NotifyEventArgs e)
        {
            if (!string.IsNullOrEmpty(e.Value))
            {
                var notify = JsonConvert.DeserializeObject <NotifyPackage>(e.Value);
                switch (notify.Key)
                {
                case WebScriptNotifyType.AppLoaded:
                    IsControlLoaded     = true;
                    IsLoadingRingActive = false;
                    break;

                case WebScriptNotifyType.EditorLoaded:
                    IsEditorLoaded = true;
                    break;

                case WebScriptNotifyType.ExcuteActionSuccess:
                case WebScriptNotifyType.DefineThemeSuccess:
                    ExcuteSuccess?.Invoke(this, new EditorExcuteSuccessEventArgs(notify.Key, notify.Value));
                    break;

                case WebScriptNotifyType.ExcuteActionFailed:
                case WebScriptNotifyType.DefineThemeFailed:
                case WebScriptNotifyType.SetThemeFailed:
                    ExcuteFailed?.Invoke(this, new EditorExcuteFailedEventArgs(notify.Value));
                    break;

                case WebScriptNotifyType.Save:
                    RequestSave?.Invoke(this, EventArgs.Empty);
                    break;

                case WebScriptNotifyType.ContentChanged:
                    ContentChanged?.Invoke(this, EventArgs.Empty);
                    break;

                case WebScriptNotifyType.ContextMenu:
                    ShowContextMenuFlyout(notify.Value);
                    break;

                case WebScriptNotifyType.Resize:
                    Resize?.Invoke(this, new EditorResizeEventArgs(Convert.ToDouble(notify.Value)));
                    break;

                default:
                    break;
                }
            }
        }
Example #5
0
            //SCRIPTINPUT (FS)
            void RemoveRequestFromList(int position, bool declined)
            {
                RequestSave toDelete = requests[position];

                int[] cPos = lookUpTable[toDelete.targetName];
                if (cPos.Length == 1)
                {
                    if (cPos[0] != position)
                    {
                        parent.printOut("ERROR: 0X002 @ CHAT_HANDLER/REMOVE_REQUEST");
                        throw new Exception("ERROR: 0X002 @ CHAT_HANDLER/REMOVE_REQUEST");
                    }
                    lookUpTable.Remove(toDelete.targetName);
                    requests.RemoveAt(position);
                }
                else
                {
                    int[] newLookup = new int[lookUpTable[toDelete.targetName].Length - 1];
                    short counter   = 0;
                    try
                    {
                        foreach (int i in cPos)
                        {
                            if (i != position)
                            {
                                newLookup[counter] = i;
                                counter++;
                            }
                        }
                    }
                    catch (Exception)
                    {
                        //ID not found => tried to copy all n entries in n-1 array => exception => ??? => profit
                        parent.printOut("ERROR: 0X003 @ CHAT_HANDLER/REMOVE_REQUEST");
                        throw new Exception("ERROR: 0X003 @ CHAT_HANDLER/REMOVE_REQUEST");
                    }
                    lookUpTable[toDelete.targetName] = newLookup;
                    requests.RemoveAt(position);
                }
                if (declined)
                {
                    string mes = "Chat/ReqDec/" + toDelete.targetID;
                    parent.SendMessage(toDelete.targetName, mes);
                }
            }
Example #6
0
 void OnRequestSave()
 {
     ManipulationData();
     RequestSave?.Invoke(this, EventArgs.Empty);
 }
Example #7
0
 //SCRIPTINPUT (FS)
 public void HandleMessage(string message, string sender)
 {
     string[] messageParts = message.Split('/');
     if (messageParts.Length < 3)
     {
         parent.printOut("ERROR: 0X007 @ CHAT_HANDLER/HANDLE_MESSAGE");
         throw new Exception("ERROR: 0X007 @ CHAT_HANDLER/HANDLE_MESSAGE");
     }
     if (messageParts[1] == "ReqDec")
     {
         int id;
         try
         {
             id = int.Parse(messageParts[2]);
             chatWindows[id].ConnectionDeclined(sender);
         }
         catch (Exception)
         {
             parent.printOut("WARNING: Bad message recieved: " + message);
             return;
         }
         return;
     }
     try
     {
         int[] Ids = ExtractID(message);
         if (Ids[1] == 0)
         {
             RequestSave rs = new RequestSave
             {
                 targetName   = sender,
                 targetID     = Ids[0],
                 requestsOpen = chatWindows.Count,
                 messages     = new List <string>()
             };
             string mes = message.Split('/')[4];
             rs.messages.Add(mes);
             requests.Add(rs);
             if (!lookUpTable.Keys.Contains(sender))
             {
                 int[] temp = { requests.Count - 1 };
                 lookUpTable.Add(sender, temp);
             }
             else
             {
                 int[] save = lookUpTable[sender];
                 int[] copy = new int[save.Length];
                 for (int i = 0; i < save.Length; i++)
                 {
                     copy[i] = save[i];
                 }
                 copy[copy.Length - 1] = Ids[0];
             }
             foreach (ChatModule cm in chatWindows.Values.ToList())
             {
                 cm.SetRequest(sender, Ids[0]);
             }
         }
         else if (Ids[0] != -1)
         {
             string mes = message.Split('/')[4];
             chatWindows[Ids[1]].AddText(mes);
         }
     }
     catch (Exception e)
     {
         parent.printOut(e.Message);
         parent.printOut("ERROR: 0X008 @ CHAT_HANDLER/HANDLE_MESSAGE");
         throw new Exception("ERROR: 0X008 @ CHAT_HANDLER/HANDLE_MESSAGE");
     }
 }