Пример #1
0
 static AuFormsHelpers()
 {
     _cvInfoMap["hstack"] = new ConvInfo {
         Handler = ConvertHStack, ElementsAllowed = "*"
     };
     _cvInfoMap["vstack"] = new ConvInfo {
         Handler = ConvertVStack, ElementsAllowed = "*"
     };
     _cvInfoMap["grid-layout"] = new ConvInfo {
         Handler = ConvertGridLayout, ElementsAllowed = "*"
     };
     _cvInfoMap["textblock"] = new ConvInfo {
         Handler = ConvertTextBlock
     };
     _cvInfoMap["textbox"] = new ConvInfo {
         Handler = ConvertTextBox
     };
     _cvInfoMap["numbox"] = new ConvInfo {
         Handler = ConvertTextBox
     };
     _cvInfoMap["textarea"] = new ConvInfo {
         Handler = ConvertTextArea
     };
     _cvInfoMap["checkbox"] = new ConvInfo {
         Handler = ConvertCheckBox
     };
     _cvInfoMap["radio"] = new ConvInfo {
         Handler = ConvertRadio, ElementsAllowed = "option"
     };
     _cvInfoMap["select"] = new ConvInfo {
         Handler = ConvertSelect, ElementsAllowed = "option"
     };
     _cvInfoMap["select2"] = new ConvInfo {
         Handler = ConvertSelect, ElementsAllowed = "option"
     };
     _cvInfoMap["multiselect"] = new ConvInfo {
         Handler = ConvertSelect, ElementsAllowed = "option"
     };
     _cvInfoMap["pillselect"] = new ConvInfo {
         Handler = ConvertSelect, ElementsAllowed = "option"
     };
     _cvInfoMap["option"] = new ConvInfo {
         Handler = ConvertOption
     };
     _cvInfoMap["fgdate"] = new ConvInfo {
         Handler = ConvertPicker
     };
     _cvInfoMap["fgtime"] = new ConvInfo {
         Handler = ConvertPicker
     };
     _cvInfoMap["button"] = new ConvInfo {
         Handler = ConvertButton
     };
     _cvInfoMap["panel"] = new ConvInfo {
         Handler = ConvertPanel, ElementsAllowed = "*"
     };
 }
Пример #2
0
        public async Task OnTurn(ITurnContext context, MiddlewareSet.NextDelegate next)
        {
            string botReply = "";

            if (context.Activity.Type == ActivityTypes.Message)
            {
                if (context.Activity.Text.ToLower() == "history")
                {
                    // Read last 5 responses from the database, and short circuit future execution
                    await context.SendActivity(await cdh.ReadFromDatabase(5, "BotData", "BotCollection"));

                    return;
                }

                // Create a send activity handler to grab all response activities
                // from the activity list.
                context.OnSendActivities(async(activityContext, activityList, activityNext) =>
                {
                    foreach (Activity activity in activityList)
                    {
                        botReply += (activity.Text + " ");
                    }
                    return(await activityNext());
                });
            }

            await next();

            // Save logs for each conversational exchange only
            if (context.Activity.Type == ActivityTypes.Message)
            {
                // Write log to the database
                var convHistory = new ConvInfo
                {
                    Time    = DateTime.Now.ToString(),
                    Sender  = context.Activity.From.Name,
                    Message = context.Activity.Text,
                    Reply   = botReply
                };

                try
                {
                    var document = await cdh.docClient.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri("BotData", "BotCollection"), convHistory);
                }
                catch (Exception ex)
                {
                    //TODO: More logic for what to do on a failed write can be added here
                    throw ex;
                }
            }
        }
Пример #3
0
        static JObject ConvertNode(ConvContext pctx, XElement xnode)
        {
            var jnode = new JObject();

            string name   = xnode.Name.LocalName;
            int    dotpos = name.IndexOf('.');

            if (dotpos >= 0)
            {
                var propName = name.Substring(dotpos + 1);
                var cctx     = pctx.CreateChild();
                foreach (XElement xchild in xnode.Elements())
                {
                    JObject jc = ConvertNode(cctx, xchild);
                    pctx.JParent[propName] = jc;
                    break;
                }
                return(null);
            }
            else
            {
                ConvInfo cvInfo = _cvInfoMap[name];
                jnode["type"] = name;

                var id = (string)xnode.Attribute("id");
                if (string.IsNullOrEmpty(id) == false)
                {
                    pctx.IdMap[id] = true;
                    jnode["id"]    = id;
                }

                ConvertParamString(pctx, xnode, jnode, "halign");
                ConvertParamString(pctx, xnode, jnode, "margin");
                //ConvertThickness(pctx, xnode, jnode, "margin");
                ConvertParamBool(pctx, xnode, jnode, "visible");
                ConvertParamBool(pctx, xnode, jnode, "enabled");

                if (pctx.Parent.ColLabel != null)
                {
                    jnode["gcols"] = new JArray(
                        pctx.Parent.ColLabel.Col1,
                        pctx.Parent.ColLabel.Col2
                        );
                }

                JObject jresult = cvInfo.Handler(pctx, xnode, jnode);

                if (jresult != null)
                {
                    var cctx = pctx.CreateChild();
                    cctx.XParent = xnode;
                    cctx.JParent = jnode;

                    if (string.IsNullOrEmpty(cvInfo.ElementsAllowed))
                    {
                        if (xnode.Elements().Any())
                        {
                            throw new InvalidDataException($"The element {name} does not allow any children elements.");
                        }
                    }
                    else
                    {
                        var      jarr    = new JArray();
                        bool     isJolly = cvInfo.ElementsAllowed == "*";
                        string[] parts   = cvInfo.ElementsAllowed.Split(' ');
                        foreach (XElement xchild in xnode.Elements())
                        {
                            if (isJolly || parts.Contains(xchild.Name.LocalName) || xchild.Name.LocalName.Contains('.'))
                            {
                                JObject jc = ConvertNode(cctx, xchild);
                                if (jc != null)
                                {
                                    jarr.Add(jc);
                                }
                            }
                            else
                            {
                                throw new InvalidDataException($"The element {name} does not allow the {xchild.Name.LocalName} element as child.");
                            }
                        }
                        if (jarr.Count != 0)
                        {
                            jresult["nodes"] = jarr;
                        }
                    }
                }

                return(jresult);
            }
        }
Пример #4
0
 static AuFormsHelpers()
 {
     _cvInfoMap["row"] = new ConvInfo {
         Handler = ConvertRow, ElementsAllowed = "*"
     };
     _cvInfoMap["stack"] = new ConvInfo {
         Handler = ConvertStack, ElementsAllowed = "*"
     };
     _cvInfoMap["grid-layout"] = new ConvInfo {
         Handler = ConvertGridLayout, ElementsAllowed = "*"
     };
     _cvInfoMap["host"] = new ConvInfo {
         Handler = ConvertHost
     };
     _cvInfoMap["icon"] = new ConvInfo {
         Handler = ConvertIcon
     };
     _cvInfoMap["textblock"] = new ConvInfo {
         Handler = ConvertTextBlock
     };
     _cvInfoMap["textbox"] = new ConvInfo {
         Handler = ConvertTextBox
     };
     _cvInfoMap["numbox"] = new ConvInfo {
         Handler = ConvertNumBox
     };
     _cvInfoMap["colorbox"] = new ConvInfo {
         Handler = ConvertColorBox
     };
     _cvInfoMap["textarea"] = new ConvInfo {
         Handler = ConvertTextArea
     };
     _cvInfoMap["checkbox"] = new ConvInfo {
         Handler = ConvertCheckBox
     };
     _cvInfoMap["radiobox"] = new ConvInfo {
         Handler = ConvertRadioBox
     };
     _cvInfoMap["radioselect"] = new ConvInfo {
         Handler = ConvertRadioSelect, ElementsAllowed = "option"
     };
     _cvInfoMap["select"] = new ConvInfo {
         Handler = ConvertSelect, ElementsAllowed = "option"
     };
     _cvInfoMap["select2"] = new ConvInfo {
         Handler = ConvertSelect, ElementsAllowed = "option"
     };
     _cvInfoMap["multiselect"] = new ConvInfo {
         Handler = ConvertSelect, ElementsAllowed = "option"
     };
     _cvInfoMap["pillselect"] = new ConvInfo {
         Handler = ConvertSelect, ElementsAllowed = "option"
     };
     _cvInfoMap["option"] = new ConvInfo {
         Handler = ConvertOption
     };
     _cvInfoMap["fgdate"] = new ConvInfo {
         Handler = ConvertPicker
     };
     _cvInfoMap["fgtime"] = new ConvInfo {
         Handler = ConvertPicker
     };
     _cvInfoMap["fgdatetime"] = new ConvInfo {
         Handler = ConvertPicker
     };
     _cvInfoMap["button"] = new ConvInfo {
         Handler = ConvertButton
     };
     _cvInfoMap["panel"] = new ConvInfo {
         Handler = ConvertPanel, ElementsAllowed = "*"
     };
 }
Пример #5
0
 private void SetWarmUpTime(List<ISimulationCarrier> carrierList)
 {
     foreach (SimulationCarrier carrier in carrierList)
     {
         ConvInfo curConvTotal = carrier.ConvParam.CurConvTotal;
         curConvTotal.ULIoT += carrier.IOTTTI;
         ConvInfo info3 = carrier.ConvParam.CurConvTotal;
         info3.ULLoad += carrier.UlActualLoad;
         ConvInfo info4 = carrier.ConvParam.CurConvTotal;
         info4.ULThroughput += carrier.UlActualTh;
         ConvInfo info5 = carrier.ConvParam.CurConvTotal;
         info5.DLLoad += carrier.DlActualLoad;
         ConvInfo info6 = carrier.ConvParam.CurConvTotal;
         info6.DLThroughput += carrier.DlActualTh;
         ConvInfo item = new ConvInfo();
         item.ULIoT = carrier.IOTTTI;
         item.ULLoad = carrier.UlActualLoad;
         item.ULThroughput = carrier.UlActualTh;
         item.DLLoad = carrier.DlActualLoad;
         item.DLThroughput = carrier.DlActualTh;
         carrier.ConvParam.ConvInfoList.Add(item);
         if (carrier.ConvParam.ConvInfoList.Count > SimulationConstant.DELTA_TTI)
         {
             ConvInfo info2 = carrier.ConvParam.ConvInfoList[0];
             carrier.ConvParam.ConvInfoList.RemoveAt(0);
             ConvInfo info7 = carrier.ConvParam.CurConvTotal;
             info7.ULIoT -= info2.ULIoT;
             ConvInfo info8 = carrier.ConvParam.CurConvTotal;
             info8.ULLoad -= info2.ULLoad;
             ConvInfo info9 = carrier.ConvParam.CurConvTotal;
             info9.ULThroughput -= info2.ULThroughput;
             ConvInfo info10 = carrier.ConvParam.CurConvTotal;
             info10.DLLoad -= info2.DLLoad;
             ConvInfo info11 = carrier.ConvParam.CurConvTotal;
             info11.DLThroughput -= info2.DLThroughput;
         }
     }
     if ((this.m_CurTTI >= (SimulationConstant.TTI_START + SimulationConstant.DELTA_TTI)) && ((((this.m_CurTTI - SimulationConstant.TTI_START) - SimulationConstant.DELTA_TTI) % SimulationConstant.DELTA_T) == 0))
     {
         this.JudgeOnConvPeriod(carrierList);
     }
 }
Пример #6
0
 private bool GetIsConv(ConvInfo curInfo, ConvInfo preInfo)
 {
     bool flag = true;
     flag &= Math.Abs((float) (preInfo.ULIoT - curInfo.ULIoT)) < (SimulationConstant.CONV_ULIOT_THRESHOLD * SimulationConstant.DELTA_TTI);
     flag &= Math.Abs((float) (preInfo.ULLoad - curInfo.ULLoad)) < (SimulationConstant.CONV_ULLOAD_THRESHOLD * SimulationConstant.DELTA_TTI);
     flag &= Math.Abs((float) (preInfo.DLLoad - curInfo.DLLoad)) < (SimulationConstant.CONV_DLLOAD_THRESHOLD * SimulationConstant.DELTA_TTI);
     flag &= this.IsThroughputConvergent(preInfo.ULThroughput, curInfo.ULThroughput, SimulationConstant.CONV_ULTH_THRESHOLD);
     return (flag & this.IsThroughputConvergent(preInfo.DLThroughput, curInfo.DLThroughput, SimulationConstant.CONV_DLTH_THRESHOLD));
 }