예제 #1
0
 private void SumCheckedLists()
 {
     packetsView.EndEdit();
     _checkedCountLists = 0;
     _checkedCountDocs  = 0;
     foreach (DataRowView row in _listsBS.Cast <DataRowView>().Where(row => Convert.ToBoolean(row[Check])))
     {
         _checkedCountLists++;
         _checkedCountDocs += Convert.ToInt32(row[ListsView2.countDocs]);
     }
     checkedPacketCountBox.Text = _checkedCountLists.ToString();
     chekedDocCountBox.Text     = _checkedCountDocs.ToString();
 }
예제 #2
0
        private List <DataRowView> GetSelectedRows()
        {
            if (_personBS.Current != null)
            {
                (_personBS.Current as DataRowView)[Check] = true;
            }

            personView.EndEdit();
            List <DataRowView> list = _personBS.Cast <DataRowView>().Where(personRow => (bool)personRow[Check]).ToList();

            personView.Refresh();

            return(list);
        }
예제 #3
0
 private void FrmOrderDetailManager_VisibleChanged(object sender, EventArgs e)
 {
     if (this.Visible)
     {
         if ((CRUDState)dataSender["fnState"] == CRUDState.Add)
         {
             orderId = (int)dataSender["currentId"];
             staffId = (int)dataSender["staffId"];
             Display(-1);
         }
         else
         {
             orderId      = (int)dataSender["orderId"];
             edtMark.Text = dataSender["mark"].ToString();
             customId     = (int)dataSender["customId"];
             staffId      = (int)dataSender["staffId"];
             Display(orderId);
         }
     }
     else
     {
         dataSender.SetData("orderDetails", bindingSource.Cast <OrderDetail>().ToList());
         dataSender.SetData("customId", ((Customer)cbCustomer.SelectedItem).custom_id);
         dataSender.SetData("mark", short.Parse(edtMark.Text == ""?"0":edtMark.Text));
     }
 }
예제 #4
0
        public void RestXH()
        {
            IEnumerable <_ObjectInfo> infos    = null;
            List <_ObjectInfo>        infolist = null;
            int m = 1;

            switch (this.m_ListType)
            {
            case EListType.Default:
                infos = from info in this.DataSource.Cast <_ObjectInfo>()
                        where info is _FFixedListInfo
                        select info;

                infolist = infos.ToList();
                break;

            case EListType.Professional:
                infos = from info in DataSource.Cast <_ObjectInfo>()
                        where SetXH(info, ref m, typeof(_ProfessionalInfo))
                        select info;

                break;

            case EListType.Chapter:
                infos = from info in m_ObjectsList.Cast <_ObjectInfo>()
                        where SetXH(info, ref m, typeof(_ChapterInfo))

                        select info;

                break;

            case EListType.Festival:
                infos = from info in DataSource.Cast <_ObjectInfo>()
                        where SetXH(info, ref m, typeof(_FestivalInfo))
                        select info;

                break;
            }
            infos.ToList();
        }
        public void SyncSort(string columnName, ListSortDirection sortDirection, BackgroundWorker worker)
        {
            worker.ReportProgress(0);

            var sortString = columnName + " " + (sortDirection == ListSortDirection.Ascending ? "ASC" : "DESC");

            var source = new BindingSource(_table, "")
            {
                RaiseListChangedEvents = false,
                Sort = sortString
            };

            ///////////////////////////////////////////////////////////////////////////////

            var rows = _table.Rows;

            var sortedRows = source.Cast <DataRowView>()
                             .Select(x => x.Row.ItemArray)
                             .ToList();

            ///////////////////////////////////////////////////////////////////////////////

            var totalDocuments     = rows.Count;
            var processedDocuments = 0;

            rows.Clear();
            foreach (var itemArray in sortedRows)
            {
                var row = _table.Rows.Add();
                row.ItemArray = itemArray;

                processedDocuments++;
                if (processedDocuments % 50 == 0)
                {
                    var progress = (int)(((double)processedDocuments / totalDocuments) * 100);
                    worker.ReportProgress(progress);
                }
            }

            ///////////////////////////////////////////////////////////////////////////////

            _table.AcceptChanges();

            ///////////////////////////////////////////////////////////////////////////////

            _sortColumn    = columnName;
            _sortDirection = sortDirection;
        }
        private void CheckAll()
        {
            this.orgView.EndEdit();
            bool allchecked = true;

            foreach (DataRowView row in _orgBS)
            {
                allchecked &= Convert.ToBoolean(row[Check]);
            }

            foreach (
                DataRowView row in
                _orgBS.Cast <DataRowView>().Where(row => !_orgIds.Contains(Convert.ToInt64(row[Org.id]))))
            {
                row[Check] = !allchecked;
            }

            this.orgView.Refresh();
        }
예제 #7
0
 private void packetView_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     try
     {
         if (e.RowIndex == -1 && e.ColumnIndex == 0)
         {
             (sender as DataGridView).EndEdit();
             bool allchecked = _packetBS.Cast <DataRowView>().All(row => (bool)row[Check]);
             foreach (DataRowView row in _packetBS)
             {
                 row[Check] = !allchecked;
             }
         }
         (sender as DataGridView).Refresh();
     }
     catch (Exception ex)
     {
         MainForm.ShowErrorFlexMessage(ex.Message, "Непредвиденная ошибка");
     }
 }
예제 #8
0
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                using (var form = new SelectEntityForm(SelectEntityDialogTitle, SelectEntityGrouperTitle, SelectEntityLabelText))
                {
                    if (form.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }
                    if (string.IsNullOrWhiteSpace(form.Path))
                    {
                        return;
                    }
                    BodyType bodyType;
                    if (!Enum.TryParse(cboBodyType.Text, true, out bodyType))
                    {
                        bodyType = BodyType.Stream;
                    }
                    var             messageSender = serviceBusHelper.MessagingFactory.CreateMessageSender(form.Path);
                    BrokeredMessage outboundMessage;
                    if (bodyType == BodyType.Wcf)
                    {
                        var wcfUri = serviceBusHelper.IsCloudNamespace ?
                                     new Uri(serviceBusHelper.NamespaceUri, messageSender.Path) :
                                     new UriBuilder
                        {
                            Host   = serviceBusHelper.NamespaceUri.Host,
                            Path   = string.Format("{0}/{1}", serviceBusHelper.NamespaceUri.AbsolutePath, messageSender.Path),
                            Scheme = "sb"
                        }.Uri;
                        outboundMessage = serviceBusHelper.CreateMessageForWcfReceiver(brokeredMessage.Clone(txtMessageText.Text),
                                                                                       0,
                                                                                       false,
                                                                                       false,
                                                                                       wcfUri);
                    }
                    else
                    {
                        outboundMessage = serviceBusHelper.CreateMessageForApiReceiver(brokeredMessage.Clone(txtMessageText.Text),
                                                                                       0,
                                                                                       false,
                                                                                       false,
                                                                                       false,
                                                                                       bodyType,
                                                                                       cboSenderInspector.SelectedIndex > 0 ?
                                                                                       Activator.CreateInstance(serviceBusHelper.BrokeredMessageInspectors[cboSenderInspector.Text]) as IBrokeredMessageInspector :
                                                                                       null);
                    }
                    outboundMessage.Properties.Clear();
                    var warningCollection = new ConcurrentBag <string>();
                    foreach (var messagePropertyInfo in bindingSource.Cast <MessagePropertyInfo>())
                    {
                        try
                        {
                            messagePropertyInfo.Key = messagePropertyInfo.Key.Trim();
                            if (messagePropertyInfo.Type != StringType && messagePropertyInfo.Value == null)
                            {
                                warningCollection.Add(string.Format(CultureInfo.CurrentUICulture, PropertyValueCannotBeNull, messagePropertyInfo.Key));
                            }
                            else
                            {
                                if (outboundMessage.Properties.ContainsKey(messagePropertyInfo.Key))
                                {
                                    outboundMessage.Properties[messagePropertyInfo.Key] = ConversionHelper.MapStringTypeToCLRType(messagePropertyInfo.Type, messagePropertyInfo.Value);
                                }
                                else
                                {
                                    outboundMessage.Properties.Add(messagePropertyInfo.Key, ConversionHelper.MapStringTypeToCLRType(messagePropertyInfo.Type, messagePropertyInfo.Value));
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            warningCollection.Add(string.Format(CultureInfo.CurrentUICulture, PropertyConversionError, messagePropertyInfo.Key, ex.Message));
                        }
                    }
                    if (warningCollection.Count > 0)
                    {
                        var builder  = new StringBuilder(WarningHeader);
                        var warnings = warningCollection.ToArray <string>();
                        for (var i = 0; i < warningCollection.Count; i++)
                        {
                            builder.AppendFormat(WarningFormat, warnings[i]);
                        }
                        writeToLog(builder.ToString());
                    }

                    long elapsedMilliseconds;
                    serviceBusHelper.SendMessage(messageSender,
                                                 outboundMessage,
                                                 0,
                                                 bodyType == BodyType.Wcf,
                                                 false,
                                                 true,
                                                 true,
                                                 out elapsedMilliseconds);
                }
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
        }
예제 #9
0
        private async void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                using (var form = new SelectEntityForm(SelectEntityDialogTitle, SelectEntityGrouperTitle, SelectEntityLabelText))
                {
                    if (form.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }
                    if (string.IsNullOrWhiteSpace(form.Path))
                    {
                        return;
                    }
                    BodyType bodyType;
                    if (!Enum.TryParse(cboBodyType.Text, true, out bodyType))
                    {
                        bodyType = BodyType.Stream;
                    }
                    var messageSender = serviceBusHelper.MessagingFactory.CreateMessageSender(form.Path);
                    var messages      = brokeredMessages != null ?
                                        new List <BrokeredMessage>(brokeredMessages) :
                                        new List <BrokeredMessage>(new [] { brokeredMessage });
                    var outboundMessages = new List <BrokeredMessage>();
                    foreach (var message in messages)
                    {
                        BrokeredMessage outboundMessage;
                        if (bodyType == BodyType.Wcf)
                        {
                            var wcfUri = serviceBusHelper.IsCloudNamespace ?
                                         new Uri(serviceBusHelper.NamespaceUri, messageSender.Path) :
                                         new UriBuilder
                            {
                                Host   = serviceBusHelper.NamespaceUri.Host,
                                Path   = $"{serviceBusHelper.NamespaceUri.AbsolutePath}/{messageSender.Path}",
                                Scheme = "sb"
                            }.Uri;
                            outboundMessage = serviceBusHelper.CreateMessageForWcfReceiver(message.Clone(txtMessageText.Text),
                                                                                           0,
                                                                                           false,
                                                                                           false,
                                                                                           wcfUri);
                        }
                        else
                        {
                            if (brokeredMessage != null)
                            {
                                // For body type ByteArray cloning is not an option. When cloned, supplied body can be only of a string or stream types, but not byte array :(
                                outboundMessage = bodyType == BodyType.ByteArray ?
                                                  brokeredMessage.CloneWithByteArrayBodyType(txtMessageText.Text) :
                                                  brokeredMessage.Clone(txtMessageText.Text);
                            }
                            else
                            {
                                var messageText = serviceBusHelper.GetMessageText(message, out bodyType);

                                // For body type ByteArray cloning is not an option. When cloned, supplied body can be only of a string or stream types, but not byte array :(
                                outboundMessage = bodyType == BodyType.ByteArray ?
                                                  message.CloneWithByteArrayBodyType(messageText) :
                                                  message.Clone(messageText);
                            }

                            outboundMessage = serviceBusHelper.CreateMessageForApiReceiver(outboundMessage,
                                                                                           0,
                                                                                           false,
                                                                                           false,
                                                                                           false,
                                                                                           bodyType,
                                                                                           cboSenderInspector.SelectedIndex > 0 ?
                                                                                           Activator.CreateInstance(serviceBusHelper.BrokeredMessageInspectors[cboSenderInspector.Text]) as IBrokeredMessageInspector :
                                                                                           null);
                        }
                        var warningCollection = new ConcurrentBag <string>();
                        foreach (var messagePropertyInfo in bindingSource.Cast <MessagePropertyInfo>())
                        {
                            try
                            {
                                if (string.Compare(messagePropertyInfo.Key, "DeadLetterReason",
                                                   StringComparison.InvariantCultureIgnoreCase) == 0 ||
                                    string.Compare(messagePropertyInfo.Key, "DeadLetterErrorDescription",
                                                   StringComparison.InvariantCultureIgnoreCase) == 0)
                                {
                                    continue;
                                }
                                messagePropertyInfo.Key = messagePropertyInfo.Key.Trim();
                                if (messagePropertyInfo.Type != StringType && messagePropertyInfo.Value == null)
                                {
                                    warningCollection.Add(string.Format(CultureInfo.CurrentUICulture, PropertyValueCannotBeNull, messagePropertyInfo.Key));
                                }
                                else
                                {
                                    if (outboundMessage.Properties.ContainsKey(messagePropertyInfo.Key))
                                    {
                                        outboundMessage.Properties[messagePropertyInfo.Key] = ConversionHelper.MapStringTypeToCLRType(messagePropertyInfo.Type, messagePropertyInfo.Value);
                                    }
                                    else
                                    {
                                        outboundMessage.Properties.Add(messagePropertyInfo.Key, ConversionHelper.MapStringTypeToCLRType(messagePropertyInfo.Type, messagePropertyInfo.Value));
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                warningCollection.Add(string.Format(CultureInfo.CurrentUICulture, PropertyConversionError, messagePropertyInfo.Key, ex.Message));
                            }
                        }
                        if (warningCollection.Count <= 0)
                        {
                            outboundMessages.Add(outboundMessage);
                            continue;
                        }
                        var builder  = new StringBuilder(WarningHeader);
                        var warnings = warningCollection.ToArray <string>();
                        for (var i = 0; i < warningCollection.Count; i++)
                        {
                            builder.AppendFormat(WarningFormat, warnings[i]);
                        }
                        writeToLog(builder.ToString());
                    }
                    if (!outboundMessages.Any())
                    {
                        return;
                    }
                    var sent      = outboundMessages.Count;
                    var stopwatch = new Stopwatch();
                    stopwatch.Start();
                    await messageSender.SendBatchAsync(outboundMessages);

                    stopwatch.Stop();
                    writeToLog(string.Format(MessageSentMessage, sent, messageSender.Path, stopwatch.ElapsedMilliseconds));
                    if (brokeredMessages != null)
                    {
                        Close();
                    }
                }
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
        }
예제 #10
0
        private async void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                using (var form = CreateSelectEntityForm())
                {
                    if (form.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }
                    if (string.IsNullOrWhiteSpace(form.Path))
                    {
                        return;
                    }

                    Application.UseWaitCursor = true;
                    try
                    {
                        if (!Enum.TryParse <BodyType>(cboBodyType.Text, true, out var bodyType))
                        {
                            bodyType = BodyType.Stream;
                        }
                        var messageSender = serviceBusHelper.MessagingFactory.CreateMessageSender(form.Path);
                        var messages      = brokeredMessages != null ?
                                            new List <BrokeredMessage>(brokeredMessages) :
                                            new List <BrokeredMessage>(new[] { brokeredMessage });
                        var outboundMessages = new List <BrokeredMessage>();
                        var sequenceNumbers  = new List <long>(); // Only used when removing messages
                        foreach (var message in messages)
                        {
                            BrokeredMessage outboundMessage;
                            if (bodyType == BodyType.Wcf)
                            {
                                var wcfUri = serviceBusHelper.IsCloudNamespace ?
                                             new Uri(serviceBusHelper.NamespaceUri, messageSender.Path) :
                                             new UriBuilder
                                {
                                    Host   = serviceBusHelper.NamespaceUri.Host,
                                    Path   = $"{serviceBusHelper.NamespaceUri.AbsolutePath}/{messageSender.Path}",
                                    Scheme = "sb"
                                }.Uri;
                                outboundMessage = serviceBusHelper.CreateMessageForWcfReceiver(message.Clone(txtMessageText.Text),
                                                                                               0,
                                                                                               false,
                                                                                               false,
                                                                                               wcfUri);
                            }
                            else
                            {
                                if (brokeredMessage != null)
                                {
                                    // For body type ByteArray cloning is not an option. When cloned, supplied body can be only of a string or stream types, but not byte array :(
                                    outboundMessage = bodyType == BodyType.ByteArray ?
                                                      brokeredMessage.CloneWithByteArrayBodyType(txtMessageText.Text) :
                                                      brokeredMessage.Clone(txtMessageText.Text);
                                }
                                else
                                {
                                    var messageText = serviceBusHelper.GetMessageText(message, out bodyType);

                                    // For body type ByteArray cloning is not an option. When cloned, supplied body can be only of a string or stream types, but not byte array :(
                                    outboundMessage = bodyType == BodyType.ByteArray ?
                                                      message.CloneWithByteArrayBodyType(messageText) :
                                                      message.Clone(messageText);
                                }

                                outboundMessage = serviceBusHelper.CreateMessageForApiReceiver(outboundMessage,
                                                                                               0,
                                                                                               chkNewMessageId.Checked,
                                                                                               false,
                                                                                               bodyType,
                                                                                               cboSenderInspector.SelectedIndex > 0 ?
                                                                                               Activator.CreateInstance(serviceBusHelper.BrokeredMessageInspectors[cboSenderInspector.Text]) as IBrokeredMessageInspector :
                                                                                               null);
                            }

                            sequenceNumbers.Add(message.SequenceNumber);

                            var warningCollection = new ConcurrentBag <string>();
                            foreach (var messagePropertyInfo in bindingSource.Cast <MessagePropertyInfo>())
                            {
                                try
                                {
                                    if (string.Compare(messagePropertyInfo.Key, "DeadLetterReason",
                                                       StringComparison.InvariantCultureIgnoreCase) == 0 ||
                                        string.Compare(messagePropertyInfo.Key, "DeadLetterErrorDescription",
                                                       StringComparison.InvariantCultureIgnoreCase) == 0)
                                    {
                                        continue;
                                    }
                                    messagePropertyInfo.Key = messagePropertyInfo.Key.Trim();
                                    if (messagePropertyInfo.Type != StringType && messagePropertyInfo.Value == null)
                                    {
                                        warningCollection.Add(string.Format(CultureInfo.CurrentUICulture, PropertyValueCannotBeNull, messagePropertyInfo.Key));
                                    }
                                    else
                                    {
                                        if (outboundMessage.Properties.ContainsKey(messagePropertyInfo.Key))
                                        {
                                            outboundMessage.Properties[messagePropertyInfo.Key] = ConversionHelper.MapStringTypeToCLRType(messagePropertyInfo.Type, messagePropertyInfo.Value);
                                        }
                                        else
                                        {
                                            outboundMessage.Properties.Add(messagePropertyInfo.Key, ConversionHelper.MapStringTypeToCLRType(messagePropertyInfo.Type, messagePropertyInfo.Value));
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    warningCollection.Add(string.Format(CultureInfo.CurrentUICulture, PropertyConversionError, messagePropertyInfo.Key, ex.Message));
                                }
                            }
                            if (warningCollection.Count <= 0)
                            {
                                outboundMessages.Add(outboundMessage);
                                continue;
                            }
                            var builder  = new StringBuilder(WarningHeader);
                            var warnings = warningCollection.ToArray <string>();
                            for (var i = 0; i < warningCollection.Count; i++)
                            {
                                builder.AppendFormat(WarningFormat, warnings[i]);
                            }
                            writeToLog(builder.ToString());
                        }
                        if (!outboundMessages.Any())
                        {
                            return;
                        }
                        var sent      = outboundMessages.Count;
                        var stopwatch = new Stopwatch();
                        stopwatch.Start();
                        if (chkRemove.Checked)
                        {
                            var messageHandler = CreateDeadLetterMessageHandler();

                            var result = await messageHandler.MoveMessages(messageSender,
                                                                           sequenceNumbers, outboundMessages);

                            RemovedSequenceNumbers = result.DeletedSequenceNumbers;
                            stopwatch.Stop();

                            if (result.TimedOut)
                            {
                                var messageText = messageHandler.GetFailureExplanation(result, outboundMessages.Count, delete: false);
                                writeToLog(messageText);
                                Application.UseWaitCursor = false;
                                MessageBox.Show(messageText, "Not all selected messages were moved",
                                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                            else
                            {
                                writeToLog(string.Format(MessageMovedMessage, result.DeletedSequenceNumbers.Count,
                                                         messageSender.Path, stopwatch.ElapsedMilliseconds));
                            }
                        }
                        else
                        {
                            var messageIndex = 0;
                            try
                            {
                                while (messageIndex < outboundMessages.Count)
                                {
                                    await messageSender.SendAsync(outboundMessages[messageIndex++]);
                                }
                            }
                            catch (Exception exception)
                            {
                                Application.UseWaitCursor = false;
                                var messageText = $"{outboundMessages.Count} were selected but only" +
                                                  $" {messageIndex} messages were sent. The error message is: {exception.Message}";
                                MessageBox.Show(messageText, "Not all selected messages were sent",
                                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }

                            stopwatch.Stop();
                            writeToLog(string.Format(MessageSentMessage, sent, messageSender.Path, stopwatch.ElapsedMilliseconds));
                        }

                        if (brokeredMessages != null)
                        {
                            Close();
                        }
                    }
                    finally
                    {
                        Application.UseWaitCursor = false;
                    }
                }
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
        }
예제 #11
0
 public IList <TDto> GetAll()
 {
     return(iSource.Cast <TDto>().ToList());
 }
예제 #12
0
 private bool AnyRobotWithSameName()
 {
     return(robotsBindingSource.Count > 0 && robotsBindingSource.Cast <RobotInput>().Any(b => b.Name == textBoxName.Text));
 }
예제 #13
0
        private async void StartOptimization_Click(object sender, RoutedEventArgs e)
        {
            _channel = new Channel("localhost:" + Port.Text, ChannelCredentials.Insecure);
            _client  = new UnaryOptimizer.UnaryOptimizerClient(_channel);
            UpdateConnectionStatusAsync();

            await Log($"{CommandPrefix} Start Requested");

            try
            {
                var problemDef = new ProblemDefinitionDTO()
                {
                    Inputs =
                    {
                        _inputSource.Cast <Input>().Select(input => new InputParameterDTO()
                        {
                            Name       = input.Name,
                            Continuous = new ContinuousDTO()
                            {
                                LowerBound = input.LowerBound,
                                UpperBound = input.UpperBound
                            }
                        })
                    },
                    Evaluables =
                    {
                        new EvaluableNodeDTO() //only 1 simulation node
                        {
                            Simulation = new SimulationNodeDTO()
                            {
                                Inputs ={ _inputSource.Cast <Input>().Select(it => new SimulationInputParameterDTO()
                                    {
                                        Name = it.Name
                                    }).ToList() },
                                Outputs ={ _outputSource.Cast <Output>().Select(it => new SimulationOutputParameterDTO       {
                                        Name = it.Name
                                    }).ToList() },
                                Name    = RegName.Text,
                                AutoMap = true
                            }
                        },
                        _constraintSource.Cast <Constraint>().Select(it => new EvaluableNodeDTO()
                        {
                            Constraint = new BabelConstraintNodeDTO()
                            {
                                OutputName        = it.Name,
                                BooleanExpression = it.Expression
                            }
                        })
                    }
                };

                var settings = new OptimizationSettingsDTO();

                if (_timeoutSecs != null)
                {
                    settings.RunTime = new Google.Protobuf.WellKnownTypes.Duration()
                    {
                        Seconds = _timeoutSecs ?? -1
                    };
                }

                _requests = _client.StartOptimization(new StartOptimizationCommandDTO
                {
                    ProblemDefinition = problemDef,
                    Settings          = settings
                });

                var hasNext = await _requests.ResponseStream.MoveNext(CancellationToken.None);

                if (!hasNext)
                {
                    await Log("failed to read response from StartOptimization stream");

                    return;
                }
                var next = _requests.ResponseStream.Current;

                if (next.OptimizationNotStartedNotification != null)
                {
                    var issues = String.Join(",", next.OptimizationNotStartedNotification.Issues);
                    await Log($"{ServerPrefix} Failed to start: {issues}");
                }
                else if (next.OptimizationStartedNotification != null)
                {
                    await Log($"{ServerPrefix} Started Optimization");
                }
                else
                {
                    throw new Exception($"bad protocol state, expected started-message or not-started-message, but got {next}");
                }

                _uiTaskFactory.StartNew(async() => await HandlingRequestsAsync(_requests));
            }
            catch (RpcException exception)
            {
                await Log($"{ServerPrefix} Error invoke {nameof(_client.StartOptimization)} Exception: {exception}");
            }
        }