public bool RunAction(ViewsManager views)
        {
            try
            {
                ///////////////////////////////////////////////////////////////////////////////
                ReportProgress(0);
                ///////////////////////////////////////////////////////////////////////////////

                if (!StartEntitiesPlumbingOperation(_parm.GetFullPath(_paramsFileName)))
                {
                    return(false);
                }

                ///////////////////////////////////////////////////////////////////////////////
                WaitForExit();

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

                if (_parm.Command == "Calculate")
                {
                    ReportProgress(70);
                    CalculatedEntitiesResult result = null;
                    if (File.Exists(_parm.GetFullPath(_parm.OutputFileName)))
                    {
                        var json = File.ReadAllText(_parm.GetFullPath(_parm.OutputFileName));
                        result = JsonConvert.DeserializeObject <CalculatedEntitiesResult>(json);
                    }

                    if (result == null)
                    {
                        return(false);
                    }

                    if (!WriteEntitiesNames(views, result.EntityLabels))
                    {
                        return(false);
                    }
                    if (!WriteEntitiesValues(views, result.Documents))
                    {
                        return(false);
                    }
                    if (!CalculateStatistics(views, result))
                    {
                        return(false);
                    }
                }
                else if (_parm.Command == "GetEntityNames")
                {
                    ReportProgress(50);
                    // write to database
                    EntityLabelResult result = null;
                    if (File.Exists(_parm.GetFullPath(_parm.OutputFileName)))
                    {
                        var json = File.ReadAllText(_parm.GetFullPath(_parm.OutputFileName));
                        result = JsonConvert.DeserializeObject <EntityLabelResult>(json);
                    }

                    if (result == null)
                    {
                        return(false);
                    }

                    if (!WriteEntitiesNames(views, result))
                    {
                        return(false);
                    }
                }
                return(true);
            }
            catch (Exception e)
            {
                HandleException(e);
            }
            return(false);
        }