public async Task <IHttpActionResult> Post([FromBody] ProjectMaster projectMaster)
        {
            if (!ModelState.IsValid)
            {
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.InternalServerError, ModelState)));
            }

            using (_codeVortoService = new CodeVortoService())
            {
                var totalFiles =
                    Directory.GetFiles(projectMaster.PhysicalPath, "*.*", SearchOption.AllDirectories).Length;
                projectMaster.TotalFiles   = totalFiles;
                projectMaster.UploadedDate = DateTime.Now;
                projectMaster.UploadedTime = DateTime.Now;
                projectMaster.SolutionId   = projectMaster.LanguageId;
                var project = await _codeVortoService.ProjectMasterRepository
                              .AddNewItem(projectMaster).ConfigureAwait(false);

                if (project == null)
                {
                    return(BadRequest("Project name already exist"));
                }

                return(Ok(project));
            }
        }
 public async void Post([FromBody] FileTypeReference fileTypeReference)
 {
     using (_codeVortoService = new CodeVortoService())
     {
         await _codeVortoService.FileTypeReferenceRepository.AddNewItem(fileTypeReference);
     }
 }
        public async Task <IHttpActionResult> Get()
        {
            _codeVortoService = new CodeVortoService();
            var usersList = await _codeVortoService.UserMasterRepository.GetAllItems();

            return(Ok(usersList));
        }
Example #4
0
 public IHttpActionResult Get()
 {
     using (_codeVortoService = new CodeVortoService())
     {
         var allActionWorkflows = _codeVortoService.ActionWorkflowsRepository.GetAllItems();
         return(Ok(allActionWorkflows));
     }
 }
 public IHttpActionResult Get(int projectId)
 {
     using (_codeVortoService = new CodeVortoService())
     {
         var projectMaster = _codeVortoService.ProjectMasterRepository.GetItem(projectId);
         return(Ok(projectMaster));
     }
 }
        public async Task <IHttpActionResult> Get()
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var data = await _codeVortoService.FileTypeReferenceRepository.GetAllItems();

                return(Ok(data));
            }
        }
        public async Task <IHttpActionResult> Get()
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var fileTypeExtensionList = await _codeVortoService.FileTypeExtensionRepository.GetAllItems();

                return(Ok(fileTypeExtensionList));
            }
        }
        public async Task <ProjectMaster> GetUnProcessedProject()
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var projectMaster = await _codeVortoService.ProjectMasterRepository.GetItem <ProjectMaster>(x => x.Processed == 0);

                // projectMaster = projectMaster ?? new ProjectMaster();
                return(projectMaster);
            }
        }
        public async Task <IHttpActionResult> GetApplicationLocChart(int projectId)
        // To Get all the application LOC Chart
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var objChart = new Chart {
                    Charts = new List <ChartItem>()
                };
                //var projectId = 0;
                try
                {
                    var generalRepository =
                        new GeneralRepository <ChartDashboardCount>(new AppDbContext());
                    object[] parameters =
                    {
                        new MySqlParameter("prjId", MySqlDbType.Int32)
                        {
                            Value = projectId
                        }
                    };
                    var chartData = await generalRepository
                                    .ExecuteStoreProcedure <ChartDashboardCountNew>("SpChartLOCDashboard", parameters);

                    if ((chartData.Count > 0) && (chartData.Count > 0))
                    {
                        #region Added Chart data

                        if (chartData.Count > 0)
                        {
                            for (var i = 0; i < chartData.Count; i++)
                            {
                                if (Convert.ToInt32(chartData[i].Count) != 0)
                                {
                                    objChart.Charts.Add(new ChartItem
                                    {
                                        label = chartData[i].Extension.Replace(".", ""),
                                        data  = Convert.ToInt32(chartData[i].Count),
                                        color = "#8669CC"
                                    });
                                }
                            }
                        }

                        #endregion
                    }
                }
                catch (Exception exception)
                {
                    return(InternalServerError(exception));
                }

                return(Ok(objChart));
            }
        }
 public IHttpActionResult GetAll()
 {
     using (_codeVortoService = new CodeVortoService())
     {
         Expression <Func <StatementReferenceMaster, bool> > expression = master => master.BaseCommandId == 10;
         //Predicate<StatementReferenceMaster> predicate = p => p.BaseCommandId == 10;
         var allData = _codeVortoService.StatementReferenceMasterRepository
                       .GetAllListItems(expression);
         return(Ok(allData));
     }
 }
Example #11
0
        public async Task <IHttpActionResult> UpdateWorkflowDesc(int workflowId, string workflowDesc)
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var item = _codeVortoService.ActionWorkflowsRepository
                           .GetItem(workflowId);
                item.WorkflowBusinessDescription = workflowDesc;
                var data = await _codeVortoService.ActionWorkflowsRepository
                           .UpdateItem(item);

                return(Ok(data));
            }
        }
        public async Task <IHttpActionResult> SearchProjects(string fromDate, string toDate)
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var frmDate  = Convert.ToDateTime(fromDate).ToShortDateString();
                var tDate    = Convert.ToDateTime(toDate).ToShortDateString();
                var sqlQuery = "Select * from ProjectMaster where UploadedDate BETWEEN '" + frmDate + "' AND '" +
                               tDate + "'; ";
                var projectsList = await _codeVortoService.ProjectMasterRepository
                                   .GetDataFromSqlQuery <ProjectMaster>(sqlQuery);

                return(Ok(projectsList));
            }
        }
        public async Task <IHttpActionResult> GetAllStartingPoints(int projectId, int stmtId)
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var workflowRef = await _codeVortoService.ActionWorkflowsRepository
                                  .GetDataFromSqlQuery <ActionWorkflows>(
                    " SELECT * FROM actionworkflows where ProjectId = " + projectId +
                    "  and MethodStatementId != 0 AND (EndPointOrService = 'Service' OR EndPointOrService = 'Batch'); ");

                var projectMaster = _codeVortoService.ProjectMasterRepository.GetItem(projectId);
                workflowRef[0].ProjectMaster = projectMaster;
                var lstWorkflowRef = workflowRef.ToList();
                return(Ok(lstWorkflowRef));
            }
        }
        public async Task <IHttpActionResult> Post([FromBody] List <FileTypeExtensionReference> lstFileTypeExtensionReferences)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Request is invalid"));
            }

            using (_codeVortoService = new CodeVortoService())
            {
                foreach (var fileType in lstFileTypeExtensionReferences)
                {
                    await _codeVortoService.FileTypeExtensionRepository.AddNewItem(fileType);
                }
                return(Ok(lstFileTypeExtensionReferences));
            }
        }
Example #15
0
        public async Task <IHttpActionResult> ExecuteProcessActionsOneByOne(int projectId)
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var stringBuilder = new StringBuilder();
                try
                {
                    var projectMaster = _codeVortoService.ProjectMasterRepository.GetItem(projectId);
                    if (projectMaster == null)
                    {
                        return(BadRequest("Details provided are not correct."));
                    }
                    int      solutionId = projectMaster.SolutionId ?? 0;
                    DateTime startDate  = DateTime.Now;
                    string   dashLine   =
                        "=================================================================================\n";
                    string startStatus = "Started executing Method: StartProcessUbProject\nDate: " +
                                         DateTime.Now.ToString("g") + "\nTime: " +
                                         DateTime.Now.ToString("HH:m:s tt zzz");
                    Console.WriteLine(dashLine);
                    Console.WriteLine(startStatus);
                    stringBuilder.AppendLine(dashLine).AppendLine(startStatus);

                    await StartProcessUbProject(projectMaster.ProjectId).ConfigureAwait(false); // Done

                    string endStatus = "Completed executing Method: StartProcessUbProject\nDate: " +
                                       DateTime.Now.ToString("g") + "\nTime: " +
                                       DateTime.Now.ToString("HH:m:s tt zzz");
                    Console.WriteLine(endStatus);
                    Console.WriteLine(dashLine);
                    stringBuilder.AppendLine(dashLine).AppendLine(endStatus);

                    //


                    var projectJson = JsonConvert.SerializeObject(projectMaster, Formatting.Indented);
                    return(Ok("Project processed successfully with all methods one by one. Project Details: " + projectJson));
                }
                catch (Exception exception)
                {
                    Console.WriteLine(exception.InnerException);
                    return(InternalServerError(exception));
                }
            }
        }
        public async Task <IHttpActionResult> UpdateProjectStatus(int projectId)
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var projectMaster = _codeVortoService.ProjectMasterRepository.GetItem(projectId);
                if (projectMaster == null)
                {
                    return(BadRequest("Project not found"));
                }

                projectMaster.Processed     = 1;
                projectMaster.ProcessedDate = DateTime.Now;
                projectMaster.ProcessedTime = DateTime.Now;
                await _codeVortoService.ProjectMasterRepository.UpdateItem(projectMaster);

                return(Ok(projectMaster));
            }
        }
        public async Task <IHttpActionResult> Get(int bCommandId1, int bCommandId2)
        {
            Predicate <StatementReferenceMaster> predicate = p =>
                                                             p.BaseCommandId == bCommandId1 ||
                                                             p.BaseCommandId == bCommandId2;

            using (_codeVortoService = new CodeVortoService())
            {
                var statementReference =
                    await _codeVortoService.StatementReferenceMasterRepository.GetAllItems(predicate);

                NameValueData    lstNameValueData = new NameValueData();
                List <NameValue> lstAllClasses    = new List <NameValue>();
                List <NameValue> lstAllMethods    = new List <NameValue>();
                var statementReferenceMasters     = statementReference as StatementReferenceMaster[] ??
                                                    statementReference.ToArray();
                var allClasses = (from stmt in statementReferenceMasters
                                  where stmt.BaseCommandId == bCommandId2
                                  select stmt).ToList();
                var allMethods = (from stmt in statementReferenceMasters
                                  where stmt.BaseCommandId == bCommandId1
                                  select stmt).ToList();
                lstNameValueData.Classes = new List <NameValue>();
                lstAllClasses.AddRange(
                    allClasses.Select(master =>
                                      new NameValue
                {
                    Value = master.StatementId,
                    Name  = master.ClassNameDeclared
                }));
                lstNameValueData.Classes.AddRange(lstAllClasses);
                lstNameValueData.Methods = new List <NameValue>();
                lstAllMethods.AddRange(
                    allMethods.Select(master =>
                                      new NameValue
                {
                    Value = master.StatementId,
                    Name  = master.MethodName
                }));
                lstNameValueData.Methods.AddRange(lstAllMethods);
                return(Ok(lstNameValueData));
            }
        }
        public async Task <IHttpActionResult> Get()
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var projectList = await _codeVortoService.ProjectMasterRepository.GetAllItems();

                var projectMasters = projectList as IList <ProjectMaster> ?? projectList.ToList();
                foreach (var project in projectMasters)
                {
                    if (project.UploadedTime != null)
                    {
                        project.UploadedTm = project.UploadedTime.Value.ToString("HH:mm tt");
                    }
                    if (project.ProcessedTime != null)
                    {
                        project.ProcessedTm = project.ProcessedTime.Value.ToString("HH:mm tt");
                    }
                }
                return(Ok(projectMasters));
            }
        }
        public async Task <IHttpActionResult> UserLogin([FromBody] UserMaster user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Username or password is invalid. Try again"));
            }
            try
            {
                using (_codeVortoService = new CodeVortoService())
                {
                    string password     = user.Password;
                    string encrptedPass = ClsUserMaster.EncryptPassword(password);

                    /*
                     * string decrptedPass = ClsUserMaster.DecryptPassword(encrptedPass);
                     * string d = decrptedPass;
                     * string e = encrptedPass;
                     */
                    Expression <Func <UserMaster, bool> > expression = e => e.UserName == user.UserName &&
                                                                       e.Password == encrptedPass;
                    var userMaster = await _codeVortoService.UserMasterRepository
                                     .GetItem <UserMaster>(expression, 1);

                    if (userMaster == null)
                    {
                        return(BadRequest("User not found"));
                    }

                    var userDetails = userMaster.UserDetails.First();
                    return(Ok(userDetails));
                }
            }
            catch (Exception exception)
            {
                return(InternalServerError(exception));
            }
        }
 public FileTypeReferenceController(ICodeVortoService codeVortoService)
 {
     _codeVortoService = codeVortoService;
 }
        public async Task <IHttpActionResult> StartProcessIncludesFile(int projectId)   // projectId =2
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var stringBuilder = new StringBuilder();
                var fileMaster    = await _codeVortoService.FileMasterRepository
                                    .GetAllListItems(
                    x => x.ProjectId == projectId && x.FileTypeExtensionId == 12 && x.Processed == 0);

                foreach (var fMaster in fileMaster)
                {
                    var lstFileLines = File.ReadAllLines(fMaster.FilePath).ToList();
                    if (lstFileLines.Count <= 0)
                    {
                        return(Ok("No contents in file: " + fMaster.FilePath));
                    }
                    await ParseCallAndIncludesFilesUniverse(fMaster, 5, fileMaster);

                    #region Update field for basecommandId = 45

                    stringBuilder.AppendLine(
                        "========================================================================================");
                    stringBuilder.AppendLine("Started update field for basecommandId = 45 for Project: " + projectId + "");

                    var sqlQuery = " SELECT  * FROM UniverseBasicDataDictionary WHERE ProjectId=" + projectId + " GROUP BY FileName;";
                    var universeBasicDataDicyionary =
                        await _codeVortoService.DataDictionaryRepository.GetDataFromSqlQuery <DataDictionary>(sqlQuery);

                    foreach (var dataDictionary in universeBasicDataDicyionary)
                    {
                        string tableName = dataDictionary.Description;

                        string fileName = dataDictionary.FileName;
                        string sqlQry   = "SELECT * from statementreferencemaster WHERE fileId=" + fMaster.FileId +
                                          " AND OriginalStatement like '%" + fileName + "%';";
                        var statementRefMaster =
                            await
                            _codeVortoService.StatementReferenceMasterRepository
                            .GetDataFromSqlQuery <StatementReferenceMaster>(sqlQry).ConfigureAwait(false);

                        foreach (var statementRef in statementRefMaster)
                        {
                            if (fileName != null)
                            {
                                var newStatement = Regex.Replace(!string.IsNullOrEmpty(statementRef.AlternateName) ? statementRef.AlternateName : statementRef.OriginalStatement, fileName, tableName, RegexOptions.IgnoreCase);
                                if (statementRef.BaseCommandId != 0)
                                {
                                    statementRef.AlternateName     = newStatement;
                                    statementRef.BusinessName      = newStatement;
                                    statementRef.ResolvedStatement = newStatement;
                                }
                                else
                                {
                                    statementRef.BaseCommandId     = 45;
                                    statementRef.AlternateName     = newStatement;
                                    statementRef.BusinessName      = newStatement;
                                    statementRef.ResolvedStatement = newStatement;
                                }
                            }
                            await _codeVortoService.StatementReferenceMasterRepository.UpdateItem(statementRef);
                        }
                    }
                    stringBuilder.AppendLine(
                        "========================================================================================");
                    stringBuilder.AppendLine("Ended update field for basecommandId = 45 for ProjectId: " + projectId + "");

                    #endregion
                }
            }
            return(StatusCode(HttpStatusCode.NoContent));
        }
 public ProcessIncludesController(ICodeVortoService codeVortoService)
 {
 }
        public async Task <IHttpActionResult> ParseCallAndIncludesFilesUniverse(FileMaster icdFile, int languageId, List <FileMaster> copyOfFileMaster)
        {
            var stringBuilder     = new StringBuilder();
            int commanClassProjId = 9;

            using (_codeVortoService = new CodeVortoService())
            {
                #region Load Project and Base Command Reference Details...

                var baseCommandReferenceRepository = new BaseCommandReferenceRepository(new AppDbContext());
                var baseCommandReference           = await baseCommandReferenceRepository.GetAllItems()
                                                     .ContinueWith(t =>
                {
                    var result = t.Result;
                    return(result.ToList());
                });

                var lineCommentedIndicators =
                    baseCommandReference.Find(s => s.BaseCommand == "Line Comment")
                    .PrimaryLanguageReference.ToList().FindAll(p => p.LanguageId == languageId);
                var ifConditionStart = baseCommandReference.Find(s => s.BaseCommand == "IF Start")
                                       .PrimaryLanguageReference.ToList().FindAll(p => p.LanguageId == languageId);
                var ifConditionEnd = baseCommandReference.Find(s => s.BaseCommand == "IF End")
                                     .PrimaryLanguageReference.ToList().FindAll(p => p.LanguageId == languageId);
                var callExternalIndicationStart = baseCommandReference.Find(s => s.BaseCommand == "Call External")
                                                  .PrimaryLanguageReference.ToList().FindAll(p => p.LanguageId == languageId);
                var methodIndicationEnd = baseCommandReference.Find(s => s.BaseCommand == "Method End")
                                          .PrimaryLanguageReference.ToList().FindAll(p => p.LanguageId == languageId);
                var callInternalIndicationStart = baseCommandReference.Find(s => s.BaseCommand == "Call Internal")
                                                  .PrimaryLanguageReference.ToList().FindAll(p => p.LanguageId == languageId);
                var loopIndicatorStart = baseCommandReference.Find(s => s.BaseCommand == "Loop Start")
                                         .PrimaryLanguageReference.ToList().FindAll(p => p.LanguageId == languageId);
                var loopIndicatorEnd = baseCommandReference.Find(s => s.BaseCommand == "Loop End")
                                       .PrimaryLanguageReference.ToList().FindAll(p => p.LanguageId == languageId);
                var universeBasicV1         = new UniverseBasicVersion1();
                var callClassIndicatorStart = baseCommandReference.Find(s => s.BaseCommand == "Class Start")
                                              .PrimaryLanguageReference.ToList().FindAll(p => p.LanguageId == languageId);
                var callClassIndicatorEnd = baseCommandReference.Find(s => s.BaseCommand == "Class End")
                                            .PrimaryLanguageReference.ToList().FindAll(p => p.LanguageId == languageId);
                var methodIndicationStart = baseCommandReference.Find(s => s.BaseCommand == "Method Start")
                                            .PrimaryLanguageReference.ToList().FindAll(p => p.LanguageId == languageId);
                var methodEnd   = methodIndicationEnd.Find(x => true);
                var classStart  = callClassIndicatorStart.Find(x => true);
                var classEnd    = callClassIndicatorEnd.Find(x => true);
                var methodStart = methodIndicationStart.Find(x => true);
                #endregion

                var programFileLines = File.ReadAllLines(icdFile.FilePath).ToList();
                int projectId        = icdFile.ProjectId;
                programFileLines.RemoveAll(s => s.Length <= 0);
                programFileLines = programFileLines.Select(s => s.Trim()).ToList();
                programFileLines = programFileLines.AdjustMatReadLockedLikeStatements();
                //
                var copyOfFileLines = programFileLines.ToList();
                programFileLines = programFileLines.Where(s => !s.StartsWith("*") &&
                                                          !s.StartsWith("!!") && !s.StartsWith(";*") &&
                                                          !s.StartsWith("; *")).ToList();

                #region Correct all method blocks and statements...

                // Program file processing started...
                var programLineList = new List <string>();
                stringBuilder.AppendLine("========================================================================================");
                stringBuilder.AppendLine("Started collecting all GOSUB: GetAllGoSub for project:" + projectId);
                var lstAllGoSubs = programFileLines.GetAllGoSub("GOSUB");
                Dictionary <string, List <string> > methodBlockDictionary;

                stringBuilder.AppendLine("========================================================================================");
                stringBuilder.AppendLine("Started collecting all certainpointInclude: GetListFromCertainPointInclude for project: " + projectId);
                methodBlockDictionary = universeBasicV1.GetListFromCertainPointInclude(copyOfFileLines,
                                                                                       lstAllGoSubs);

                var startedBlock = false;
                for (var length = 0; length < programFileLines.Count; length++)
                {
                    var currentLine = programFileLines[length];
                    if (lstAllGoSubs.Any(l => currentLine.StartsWith(l)))
                    {
                        startedBlock = true;
                        var firstOrDefault = currentLine.Split('*').FirstOrDefault();
                        if (firstOrDefault != null)
                        {
                            currentLine = firstOrDefault.Trim();
                        }
                        stringBuilder.AppendLine("========================================================================================");
                        stringBuilder.AppendLine("Started collecting all methodblocks: PickUpAllMethodBlocks for project:" + projectId);
                        var methodBlockOriginal = universeBasicV1.PickUpAllMethodBlocks(copyOfFileLines,
                                                                                        programFileLines[length], lstAllGoSubs, "RETURN", "STOP");
                        var methodBlock = methodBlockDictionary.FirstOrDefault(s => s.Key == currentLine);
                        programLineList.AddRange(methodBlock.Value);
                        length = length + methodBlockOriginal.Count - 1;
                        continue;
                    }
                    if (startedBlock)
                    {
                        continue;
                    }

                    programLineList.Add(currentLine);
                }

                #endregion

                var statmentRefStart = universeBasicV1.PrepareStatementReferenceMasterStart(icdFile, 42);
                await _codeVortoService.StatementReferenceMasterRepository.BulkInsert(statmentRefStart);

                #region Insert into StatementReferenceMaster...

                var    ifStart                = ifConditionStart.Find(s => true);
                var    ifEnd                  = ifConditionEnd.FindAll(s => true);
                var    loopStart              = loopIndicatorStart.FindAll(l => true);
                var    loopEnd                = loopIndicatorEnd.FindAll(l => true);
                var    callInternal           = callInternalIndicationStart.Find(c => true);
                var    callExternal           = callExternalIndicationStart.Find(c => true);
                var    indexPosition          = -1;
                var    methodBusinessName     = string.Empty;
                string businessName           = null;
                var    linesWithCommentedPart = programLineList.ToList();
                programLineList = programLineList.Select(s => s.CheckCommentInStatement()).ToList();
                stringBuilder.AppendLine("Started dump statement into database of file: " + icdFile.FilePath);
                foreach (var line in programLineList)
                {
                    indexPosition = indexPosition + 1;

                    if (string.IsNullOrEmpty(line))
                    {
                        continue;
                    }

                    if (indexPosition + 1 < programLineList.Count)
                    {
                        var nextLine = programLineList[indexPosition + 1];
                        if (!string.IsNullOrEmpty(nextLine) && lstAllGoSubs.Any(a => a.StartsWith(nextLine)))
                        {
                            methodBusinessName = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(line.ToLower());
                            continue;
                        }
                        if (linesWithCommentedPart[indexPosition].Contains("; *") ||
                            linesWithCommentedPart[indexPosition].Contains(";*"))
                        {
                            var lastOrDefault = linesWithCommentedPart[indexPosition].Split(';').LastOrDefault();
                            if (lastOrDefault != null)
                            {
                                businessName = lastOrDefault.Replace("*", "");
                            }
                            if (businessName != null)
                            {
                                businessName = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(businessName.ToLower());
                                businessName = businessName.Replace("&", "AND").Replace("&&", "AND").Replace("||", "OR");
                            }
                        }
                    }

                    if (line.StartsWith(lineCommentedIndicators.Find(x => x.StartIndicator != null).StartIndicator))
                    {
                        continue;
                    }

                    if (line.StartsWith("RETURN"))
                    {
                        var stmtReferenceMaster = new StatementReferenceMaster
                        {
                            FileId               = icdFile.FileId,
                            ResolvedStatement    = line,
                            OriginalStatement    = line,
                            ClassCalled          = null,
                            MethodName           = null,
                            BusinessName         = businessName,
                            DataOrObjectType     = null,
                            MethodCalled         = null,
                            VariableNameDeclared = null,
                            BaseCommandId        = methodEnd.BaseCommandId,
                            PrimaryCommandId     = methodEnd.PrimaryReferenceId,
                            ParsedOrNot          = "Y",
                            ProjectId            = projectId
                        };
                        await _codeVortoService.StatementReferenceMasterRepository.AddNewItem(stmtReferenceMaster);

                        businessName = string.Empty;
                        continue;
                    }
                    if (lstAllGoSubs.Any(a => line.StartsWith(a)))
                    {
                        var stmtReferenceMaster = new StatementReferenceMaster
                        {
                            FileId               = icdFile.FileId,
                            ResolvedStatement    = line,
                            OriginalStatement    = line,
                            ClassCalled          = null,
                            MethodName           = line.Split(':').FirstOrDefault() + "()",
                            DataOrObjectType     = null,
                            MethodCalled         = null,
                            VariableNameDeclared = null,
                            BaseCommandId        = 8,
                            PrimaryCommandId     = 36,
                            ParsedOrNot          = "Y",
                            ProjectId            = projectId,
                            BusinessName         = methodBusinessName
                        };
                        await _codeVortoService.StatementReferenceMasterRepository.AddNewItem(stmtReferenceMaster);

                        businessName       = string.Empty;
                        methodBusinessName = string.Empty;
                        continue;
                    }

                    if (line.StartsWith(ifStart.StartIndicator))
                    {
                        var stmtReferenceMaster = new StatementReferenceMaster
                        {
                            FileId               = icdFile.FileId,
                            ResolvedStatement    = line,
                            OriginalStatement    = line,
                            ClassCalled          = null,
                            MethodName           = null,
                            BusinessName         = businessName,
                            DataOrObjectType     = null,
                            MethodCalled         = null,
                            VariableNameDeclared = null,
                            BaseCommandId        = ifStart.BaseCommandId,
                            PrimaryCommandId     = ifStart.PrimaryReferenceId,
                            ParsedOrNot          = "Y",
                            ProjectId            = projectId
                        };
                        await _codeVortoService.StatementReferenceMasterRepository.AddNewItem(stmtReferenceMaster);

                        businessName = string.Empty;
                        continue;
                    }

                    if ((line == "END ELSE") || (line == "ELSE"))
                    {
                        var stmtReferenceMaster = new StatementReferenceMaster
                        {
                            FileId               = icdFile.FileId,
                            ResolvedStatement    = line,
                            OriginalStatement    = line,
                            ClassCalled          = null,
                            MethodName           = null,
                            BusinessName         = businessName,
                            DataOrObjectType     = null,
                            MethodCalled         = null,
                            VariableNameDeclared = null,
                            BaseCommandId        = 10,
                            PrimaryCommandId     = 0,
                            ParsedOrNot          = "Y",
                            ProjectId            = projectId
                        };
                        await _codeVortoService.StatementReferenceMasterRepository.AddNewItem(stmtReferenceMaster);

                        businessName = string.Empty;
                        continue;
                    }

                    if (ifEnd.Any(l => line == l.StartIndicator))
                    {
                        var stmtReferenceMaster = new StatementReferenceMaster
                        {
                            FileId               = icdFile.FileId,
                            ResolvedStatement    = line,
                            OriginalStatement    = line,
                            ClassCalled          = null,
                            MethodName           = null,
                            BusinessName         = businessName,
                            DataOrObjectType     = null,
                            MethodCalled         = null,
                            VariableNameDeclared = null,
                            BaseCommandId        = 2,
                            PrimaryCommandId     = ifEnd.Find(s => line.StartsWith(s.StartIndicator)).PrimaryReferenceId,
                            ParsedOrNot          = "Y",
                            ProjectId            = projectId
                        };
                        await _codeVortoService.StatementReferenceMasterRepository.AddNewItem(stmtReferenceMaster);

                        businessName = string.Empty;
                        continue;
                    }

                    if (loopStart.Any(l => line.StartsWith(l.StartIndicator)) || line == "LOOP")
                    {
                        var stmtReferenceMaster = new StatementReferenceMaster
                        {
                            FileId               = icdFile.FileId,
                            ResolvedStatement    = line,
                            OriginalStatement    = line,
                            ClassCalled          = null,
                            MethodName           = null,
                            BusinessName         = businessName,
                            DataOrObjectType     = null,
                            MethodCalled         = null,
                            VariableNameDeclared = null,
                            BaseCommandId        = line == "LOOP" ? 3 : loopStart.Find(s => line.StartsWith(s.StartIndicator)).BaseCommandId,
                            PrimaryCommandId     = line == "LOOP" ? 62 :
                                                   loopStart.Find(s => line.StartsWith(s.StartIndicator)).PrimaryReferenceId,
                            ParsedOrNot = "Y",
                            ProjectId   = projectId
                        };
                        await _codeVortoService.StatementReferenceMasterRepository.AddNewItem(stmtReferenceMaster);

                        businessName = string.Empty;
                        continue;
                    }
                    if (loopEnd.Any(l => line.StartsWith(l.StartIndicator)))
                    {
                        var stmtReferenceMaster = new StatementReferenceMaster
                        {
                            FileId               = icdFile.FileId,
                            ResolvedStatement    = line,
                            OriginalStatement    = line,
                            ClassCalled          = null,
                            MethodName           = null,
                            BusinessName         = businessName,
                            DataOrObjectType     = null,
                            MethodCalled         = null,
                            VariableNameDeclared = null,
                            BaseCommandId        = loopEnd.Find(s => line.StartsWith(s.StartIndicator)).BaseCommandId,
                            PrimaryCommandId     = loopEnd.Find(s => line.StartsWith(s.StartIndicator)).PrimaryReferenceId,
                            ParsedOrNot          = "Y",
                            ProjectId            = projectId
                        };
                        await _codeVortoService.StatementReferenceMasterRepository.AddNewItem(stmtReferenceMaster);

                        businessName = string.Empty;
                        continue;
                    }
                    if (line.StartsWith(callInternal.StartIndicator))
                    {
                        var methodName          = line.CheckCommentInStatement();
                        var stmtReferenceMaster = new StatementReferenceMaster
                        {
                            FileId               = icdFile.FileId,
                            ResolvedStatement    = methodName,
                            OriginalStatement    = methodName,
                            ClassCalled          = null,
                            MethodName           = null,
                            BusinessName         = businessName,
                            DataOrObjectType     = null,
                            MethodCalled         = methodName.Split(' ').LastOrDefault() + "()",
                            VariableNameDeclared = null,
                            BaseCommandId        = callInternal.BaseCommandId,
                            PrimaryCommandId     = callInternal.PrimaryReferenceId,
                            ParsedOrNot          = "Y",
                            ProjectId            = projectId
                        };
                        await _codeVortoService.StatementReferenceMasterRepository.AddNewItem(stmtReferenceMaster);

                        businessName = string.Empty;
                        continue;
                    }
                    if (line.StartsWith(callExternal.StartIndicator + " "))
                    {
                        var stmtReferenceMaster = new StatementReferenceMaster
                        {
                            FileId               = icdFile.FileId,
                            ResolvedStatement    = line,
                            OriginalStatement    = line,
                            ClassCalled          = null,
                            MethodName           = null,
                            BusinessName         = businessName,
                            DataOrObjectType     = null,
                            MethodCalled         = null,
                            VariableNameDeclared = null,
                            BaseCommandId        = callExternal.BaseCommandId,
                            PrimaryCommandId     = callExternal.PrimaryReferenceId,
                            ParsedOrNot          = "Y",
                            ProjectId            = projectId
                        };
                        await _codeVortoService.StatementReferenceMasterRepository.AddNewItem(stmtReferenceMaster);

                        businessName = string.Empty;
                    }
                    else
                    {
                        var stmtReferenceMaster = new StatementReferenceMaster
                        {
                            FileId               = icdFile.FileId,
                            ResolvedStatement    = line,
                            OriginalStatement    = line,
                            ClassCalled          = null,
                            MethodName           = null,
                            BusinessName         = businessName,
                            DataOrObjectType     = null,
                            MethodCalled         = null,
                            VariableNameDeclared = null,
                            BaseCommandId        = 0,
                            PrimaryCommandId     = 0,
                            ParsedOrNot          = "Y",
                            ProjectId            = projectId
                        };
                        await _codeVortoService.StatementReferenceMasterRepository.AddNewItem(stmtReferenceMaster);

                        businessName = string.Empty;
                    }
                }

                #endregion

                var statmentRefEnd = universeBasicV1.PrepareStatementReferenceMasterEnd(icdFile, 43);
                await _codeVortoService.StatementReferenceMasterRepository.BulkInsert(statmentRefEnd);

                #region Update ClassCalled field for StatementReferenceMaster...
                stringBuilder.AppendLine("========================================================================================");
                stringBuilder.AppendLine("Started update classcalled and methodcalled for basecommandId = 6 & 19 for project: " + projectId);
                /* Added shubhangi */
                var execOrCallSql = " Select sm.* from StatementReferenceMaster as sm " +
                                    " Inner Join FileMaster as fm ON sm.FileId = fm.FileId Where sm.ProjectId IN (" +
                                    projectId + "," + commanClassProjId +
                                    " ) AND fm.Processed = 0 AND sm.BaseCommandId IN (6, 19); ";
                var callExternals = await baseCommandReferenceRepository
                                    .GetDataFromSqlQuery <StatementReferenceMaster>(execOrCallSql).ConfigureAwait(false);

                foreach (var cExternal in callExternals)
                {
                    if (cExternal.BaseCommandId == 6)
                    {
                        string pgName;
                        if (cExternal.OriginalStatement.ContainsAll("@", "(", ")"))
                        {
                            pgName = cExternal.OriginalStatement.Split('@').LastOrDefault();
                            if (pgName != null)
                            {
                                pgName = pgName.Split('(').FirstOrDefault();
                            }
                        }
                        else
                        {
                            pgName = cExternal.OriginalStatement.Split('@').LastOrDefault();
                        }

                        var pName =
                            copyOfFileMaster.ToList().Where(f => !string.IsNullOrEmpty(pgName) &&
                                                            f.FileName.StartsWith(pgName) &&
                                                            (f.FileTypeExtensionId == 9)).ToList();
                        if (!pName.Any())
                        {
                            continue;
                        }
                        var projectDetatils = _codeVortoService.ProjectMasterRepository.GetItem(pName[0].ProjectId);
                        var pNameNew        = projectDetatils.ProjectName;
                        var pPathNew        = projectDetatils.PhysicalPath;

                        var className = pName[0].FilePath.Replace(pPathNew + "\\", "")
                                        .Replace(pName[0].FileName, "").Replace("\\", ".");
                        var fileName = Path.GetFileNameWithoutExtension(pName[0].FilePath);
                        // Use it later...
                        var classNameDeclared = pNameNew + "." + className + fileName;
                        cExternal.ClassCalled = classNameDeclared;

                        await _codeVortoService.StatementReferenceMasterRepository
                        .UpdateItem(cExternal).ConfigureAwait(false);

                        continue;
                    }
                    if (cExternal.BaseCommandId == 19)
                    {
                        var fileId = cExternal.FileId;


                        var pName =
                            copyOfFileMaster.ToList().Where(f => f.FileId == fileId).ToList();
                        if (pName.Count == 0) // Added shubhangi
                        {
                            var fileMasterNew = await _codeVortoService.FileMasterRepository
                                                .GetAllItems(p => p.ProjectId == projectId || p.ProjectId == commanClassProjId);

                            copyOfFileMaster =
                                new List <FileMaster>(fileMasterNew as FileMaster[] ?? fileMasterNew.ToArray());
                            pName =
                                copyOfFileMaster.ToList().Where(f => f.FileId == fileId).ToList();
                        }
                        var projectDetatils  = _codeVortoService.ProjectMasterRepository.GetItem(pName[0].ProjectId);
                        var pNameNew         = projectDetatils.ProjectName;
                        var pPathNew         = projectDetatils.PhysicalPath;
                        var classNameProgram = pName[0].FilePath.Replace(pPathNew + "\\", "")
                                               .Replace(pName[0].FileName, "").Replace("\\", ".");
                        var fileNameProgram = Path.GetFileNameWithoutExtension(pName[0].FilePath);
                        // Use it later...
                        var classNameDeclaredProgram = pNameNew + "." + classNameProgram + fileNameProgram;
                        cExternal.ClassNameDeclared = classNameDeclaredProgram;

                        await _codeVortoService.StatementReferenceMasterRepository.UpdateItem(cExternal);
                    }
                }

                #endregion

                #region Update Method called for base command id = 6 in Jcl and program...
                stringBuilder.AppendLine("========================================================================================");
                stringBuilder.AppendLine("Started update methodcalled for Jcl and program basecommandId = 6 for project: " + projectId);

                var execSql =
                    " Select sm.* from StatementReferenceMaster as sm " +
                    " Inner Join FileMaster as fm ON fm.FileId = sm.FileId Where sm.ProjectId = " + projectId +
                    " AND sm.BaseCommandId = 6 " +
                    " AND fm.Processed = 0 AND sm.ClassCalled is not null;";

                var execName = await baseCommandReferenceRepository
                               .GetDataFromSqlQuery <StatementReferenceMaster>(execSql).ConfigureAwait(false);

                foreach (var constructor in execName)
                {
                    // ReSharper disable once RedundantAssignment
                    var fName         = constructor.ClassCalled.Split('.').LastOrDefault().Trim() + ".pgm";
                    var allCheckFiles = await _codeVortoService.FileMasterRepository
                                        .GetAllItems(f => (f.ProjectId == projectId) && (f.FileName == fName)).ConfigureAwait(false);

                    foreach (var files in allCheckFiles)
                    {
                        var methodSql = " SELECT DISTINCT sm.* from statementreferencemaster as sm " +
                                        " INNER JOIN FileMaster as fm where sm.FileId = " + files.FileId +
                                        " AND fm.SolutionId = " + files.SolutionId + " AND sm.BaseCommandId = 8;";

                        var methodName = await baseCommandReferenceRepository
                                         .GetDataFromSqlQuery <StatementReferenceMaster>(methodSql).ConfigureAwait(false);

                        foreach (var statementReference in methodName)
                        {
                            if (string.IsNullOrEmpty(statementReference.MethodName))
                            {
                                continue;
                            }

                            var pName =
                                copyOfFileMaster.ToList().Where(f => f.FileId == statementReference.FileId).ToList();
                            var projectDetails1 =
                                _codeVortoService.ProjectMasterRepository.GetItem(pName[0].ProjectId);
                            var pNameNew         = projectDetails1.ProjectName;
                            var pPathNew         = projectDetails1.PhysicalPath;
                            var classNameProgram = pName[0].FilePath.Replace(pPathNew + "\\", "")
                                                   .Replace(pName[0].FileName, "").Replace("\\", ".");
                            var fileNameProgram = Path.GetFileNameWithoutExtension(pName[0].FilePath);
                            // Use it later...
                            var classCalled = pNameNew + "." + classNameProgram + fileNameProgram;

                            constructor.ClassCalled  = classCalled;
                            constructor.MethodCalled = statementReference.MethodName;
                            await _codeVortoService.StatementReferenceMasterRepository.UpdateItem(constructor).ConfigureAwait(false);

                            break;
                        }
                    }
                }

                #endregion

                #region Update field for basecommandId = 30
                stringBuilder.AppendLine("========================================================================================");
                stringBuilder.AppendLine("Started update field for basecommandId = 30 for project: " + projectId);
                if (!string.IsNullOrEmpty(icdFile.FilePath))
                {
                    var fileId      = icdFile.FileId;
                    var execSqlPrgm = " Select * from StatementReferenceMaster where ProjectId =" + projectId +
                                      " AND FileId = " + fileId + " AND BaseCommandId IN (0, 1);";

                    var execNamePrgm =
                        await baseCommandReferenceRepository.GetDataFromSqlQuery <StatementReferenceMaster>(execSqlPrgm);

                    var indexPositionPrgm = -1;
                    foreach (var exNmPg in execNamePrgm)
                    {
                        indexPositionPrgm = indexPositionPrgm + 1;
                        if (exNmPg.BaseCommandId != 1)
                        {
                            continue;
                        }
                        if ((exNmPg.OriginalStatement != "IF FOUND THEN") &&
                            (exNmPg.OriginalStatement != "IF FOUND") &&
                            (exNmPg.OriginalStatement != "IF NOT SUCCESS THEN") &&
                            (exNmPg.OriginalStatement != "IF NOT-SUCCESS THEN") &&
                            (exNmPg.OriginalStatement != "IF SUCCESS THEN") &&
                            (exNmPg.OriginalStatement != "IF NOT FOUND THEN") &&
                            (exNmPg.OriginalStatement != "IF NOT-FOUND THEN") &&
                            (exNmPg.OriginalStatement != "IF NOT FOUND") &&
                            (exNmPg.OriginalStatement != "IF NOT-FOUND"))
                        {
                            continue;
                        }

                        var aboveLine = execNamePrgm[indexPositionPrgm - 1];
                        aboveLine.BaseCommandId = 30;
                        await _codeVortoService.StatementReferenceMasterRepository.UpdateItem(aboveLine);
                    }
                }

                #endregion

                #region Update Include program File Processed
                stringBuilder.AppendLine("========================================================================================");
                stringBuilder.AppendLine("Started update Include program File Processed for project: " + projectId + ", and file is:" + icdFile.FileName + "");

                icdFile.DoneParsing   = 1;
                icdFile.ProjectMaster = null;
                await _codeVortoService.FileMasterRepository.UpdateItem(icdFile).ConfigureAwait(false);

                if (icdFile.FileTypeExtensionId != 12)
                {
                    return(Ok("Done"));
                }
                icdFile.Processed     = 1;
                icdFile.ProjectMaster = null;
                await _codeVortoService.FileMasterRepository.UpdateItem(icdFile).ConfigureAwait(false);

                #endregion
                LogMessage.WriteLogMessage(stringBuilder);
                return(Ok("Done"));
            }
        }
 public UserMasterController(ICodeVortoService codeVortoService)
 {
     _codeVortoService = codeVortoService;
 }
Example #25
0
 public CobolBatchProcessingController(ICodeVortoService codeVortoService)
 {
     _codeVortoService = codeVortoService;
 }
        //public async Task<IHttpActionResult> GetAllStartNodeDetails(int projectId, int stmtId)
        public async Task <IHttpActionResult> GetAllStartingPoints(int projectId, int stmtId, string opt)
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var lstTreeViewData = new List <TreeViewData>();
                var lstTreeView     = new List <TreeView>();
                var secondTab       = new List <TreeView>();
                var lstNodes        = new List <Node>();
                var lstLinks        = new List <Link>();
                var startClasses    =
                    await _codeVortoService.ActionWorkflowsRepository.GetAllItems(p => p.MethodStatementId != 0);

                var clsName    = (from s in startClasses where s.MethodStatementId == stmtId select s).ToList().First();
                var autoNodeId = 500;
                lstNodes.Add(new Node
                {
                    Name     = clsName.OriginObject,
                    Id       = 1111,
                    ParentId = 0,
                    ShapeId  = "RoundRect",
                    Color    = "#28c965",
                    Height   = "15",
                    Width    = clsName.OriginObject.Length.ToString()
                });
                object[] parameters =
                {
                    new MySqlParameter("@stmtId", MySqlDbType.Int32)
                    {
                        Value = stmtId
                    },
                    new MySqlParameter("@startBaseCommandId", MySqlDbType.Int32)
                    {
                        Value = 8
                    },
                    new MySqlParameter("@endBaseCommandId", MySqlDbType.Int32)
                    {
                        Value = 9
                    }
                };
                var workflowRef = _codeVortoService.StatementReferenceMasterRepository
                                  .ExecuteStoreProcedure <StatementReferenceMaster>("SpGetAnyGenericBlock", parameters)
                                  .ContinueWith(t => t.Result).Result;
                var treeStackStart = new Stack <StatementReferenceMaster>();
                treeStackStart.Push(workflowRef.FirstOrDefault());

                const string gName   = "graphName";
                var          mm      = 1;
                var          graphId = gName + mm;
                var          bId     = workflowRef[0].BaseCommandId;
                lstTreeView.Add(new TreeView
                {
                    GraphId   = 1.ToString(),
                    GraphName = clsName.OriginObject,
                    HasChild  = true,
                    ParentId  = "-1"
                });
                lstTreeView.Add(new TreeView
                {
                    GraphId       = gName + mm,
                    GraphName     = "<span class='nodeToBold'>" + workflowRef[0].OriginalStatement + "</span>",
                    HasChild      = true,
                    ParentId      = 1.ToString(),
                    BaseCommandId = bId
                });
                workflowRef.RemoveAt(0);
                var linkCounter = 1;
                var ifCounter   = 0;
                var done        = false;
                foreach (var statementM in workflowRef)
                {
                    //This is call external and will have its child tree from here...
                    var autoInt = 5;
                    if (statementM.PrimaryCommandId == 1)
                    {
                        ifCounter++;
                    }
                    if ((statementM.PrimaryCommandId == 1) && !done)
                    {
                        done    = true;
                        graphId = gName + mm + 1;
                        var treeView = new TreeView
                        {
                            GraphId        = graphId,
                            GraphName      = statementM.OriginalStatement,
                            HasChild       = true,
                            SpriteCssClass = "",
                            ParentId       = gName + mm,
                            BaseCommandId  = 1
                        };
                        lstTreeView.Add(treeView);
                        lstNodes.Add(new Node
                        {
                            Id      = autoNodeId,
                            Name    = statementM.OriginalStatement,
                            ShapeId = "Decision",
                            Color   = "#f5bd6a",
                            Height  = "15",
                            Width   = statementM.OriginalStatement.Length.ToString()
                        });
                        lstLinks.Add(new Link
                        {
                            Origin   = 1111,
                            Target   = autoNodeId,
                            LinkText = "[ " + linkCounter + " ] " +
                                       statementM.OriginalStatement
                        });
                        autoNodeId++;
                        linkCounter++;
                        continue;
                    }
                    if (statementM.PrimaryCommandId == 2)
                    {
                        ifCounter--;
                        if (ifCounter == 0)
                        {
                            done    = true;
                            graphId = gName + mm;
                        }
                    }
                    if (statementM.BaseCommandId == 6)
                    {
                        if (statementM.ClassCalled != null)
                        {
                            var      className     = statementM.ClassCalled.Split('.').Last();
                            object[] parametersExp =
                            {
                                new MySqlParameter("@clsName", MySqlDbType.VarChar)
                                {
                                    Value = className
                                }
                            };
                            var callExtExpandedCode = _codeVortoService.StatementReferenceMasterRepository
                                                      .ExecuteStoreProcedure <StatementReferenceMaster>("SpGetClassMethods", parametersExp)
                                                      .ContinueWith(t => t.Result).Result;

                            lstTreeView.Add(new TreeView
                            {
                                ParentId      = graphId,
                                GraphId       = statementM.StatementId.ToString(),
                                HasChild      = true,
                                GraphName     = "<span class='nodeToBold'>" + statementM.OriginalStatement + "</span>",
                                BaseCommandId = statementM.BaseCommandId
                            });
                            var sz1 = (from k in lstNodes where k.Name == statementM.ClassCalled select k).ToList();
                            if (!sz1.Any())
                            {
                                Node lastNode = null;
                                if (lstNodes.Last().ShapeId == "Decision")
                                {
                                    lastNode = lstNodes.Last();
                                }
                                lstNodes.Add(new Node
                                {
                                    Id      = autoNodeId,
                                    Name    = statementM.ClassCalled,
                                    ShapeId = "RoundRect",
                                    Color   = "#f5bd6a",
                                    Height  = "15",
                                    Width   = statementM.ClassCalled.Length.ToString()
                                });
                                if (lastNode != null)
                                {
                                    lstLinks.Add(new Link
                                    {
                                        Origin   = autoNodeId - 1,
                                        Target   = autoNodeId,
                                        LinkText = "[ " + linkCounter + " ] Yes"
                                    });
                                }
                                else
                                {
                                    lstLinks.Add(new Link
                                    {
                                        Origin   = 1111,
                                        Target   = autoNodeId,
                                        LinkText = "[ " + linkCounter + " ] " +
                                                   statementM.MethodCalled.Substring(0,
                                                                                     statementM.MethodCalled.IndexOf('('))
                                    });
                                }
                                autoNodeId++;
                                linkCounter++;
                            }
                            else
                            {
                                var k   = statementM.MethodCalled.Substring(0, statementM.MethodCalled.IndexOf('('));
                                var tnk = (from l in lstLinks
                                           where (l.Origin == 1111) && (l.LinkText == k)
                                           select l).ToList();
                                if (!tnk.Any())
                                {
                                }
                                //linkCounter++;
                            }

                            // Now try to find out body for external call...
                            if (callExtExpandedCode.Count == 0)
                            {
                                lstTreeView.Add(new TreeView
                                {
                                    ParentId      = statementM.StatementId.ToString(),
                                    GraphId       = "1111111",
                                    HasChild      = true,
                                    GraphName     = "<span class='nodemissingelement'>&nbsp;Definition Missing&nbsp;</span>",
                                    BaseCommandId = 25
                                });
                            }
                            else
                            {
                                foreach (var statmentM in callExtExpandedCode)
                                {
                                    if (!statementM.MethodCalled.StartsWith(statmentM.MethodName))
                                    {
                                        continue;
                                    }
                                    var blockStmtId = statmentM.StatementId;

                                    object[] bParameters =
                                    {
                                        new MySqlParameter("@stmtId", MySqlDbType.Int32)
                                        {
                                            Value = blockStmtId
                                        },
                                        new MySqlParameter("@startBaseCommandId", MySqlDbType.Int32)
                                        {
                                            Value = 8
                                        },
                                        new MySqlParameter("@endBaseCommandId", MySqlDbType.Int32)
                                        {
                                            Value = 9
                                        }
                                    };
                                    var stmtsBlick = _codeVortoService.StatementReferenceMasterRepository
                                                     .ExecuteStoreProcedure <StatementReferenceMaster>("SpGetAnyGenericBlock",
                                                                                                       bParameters).Result;
                                    foreach (var block in stmtsBlick)
                                    {
                                        if (block.BaseCommandId == 6)
                                        {
                                            lstTreeView.Add(new TreeView
                                            {
                                                ParentId      = statementM.StatementId.ToString(),
                                                GraphId       = block.StatementId + "_" + autoInt,
                                                HasChild      = false,
                                                GraphName     = block.OriginalStatement,
                                                BaseCommandId = block.BaseCommandId
                                            });
                                            var sz =
                                                (from s in lstNodes where s.Name == block.ClassCalled select s).ToList();
                                            if (!sz.Any())
                                            {
                                                lstNodes.Add(new Node
                                                {
                                                    Id            = autoNodeId,
                                                    Name          = block.ClassCalled,
                                                    BaseCommandId = statementM.BaseCommandId,
                                                    ShapeId       = "RoundRect",
                                                    Color         = "#f5bd6a",
                                                    Height        = "15",
                                                    Width         = block.ClassCalled.Length.ToString()
                                                });
                                                var block1 = block;
                                                var asz    =
                                                    (from n in lstNodes where n.Name == block1.ClassCalled select n)
                                                    .ToList();
                                                var ss =
                                                    (from t in lstNodes where t.Name == statementM.ClassCalled select t)
                                                    .ToList();
                                                lstLinks.Add(new Link
                                                {
                                                    Origin   = ss.First().Id,
                                                    Target   = asz.First().Id,
                                                    LinkText = "[ " + linkCounter + " ] " +
                                                               block.MethodCalled.Substring(0,
                                                                                            block.MethodCalled.IndexOf('('))
                                                });
                                                autoNodeId++;
                                                linkCounter++;
                                            }
                                            else
                                            {
                                                var asz =
                                                    (from n in lstNodes where n.Name == statementM.ClassCalled select n)
                                                    .ToList();
                                                lstLinks.Add(new Link
                                                {
                                                    Origin   = asz.First().Id,
                                                    Target   = sz.First().Id,
                                                    LinkText = "[ " + linkCounter + " ] " +
                                                               block.MethodCalled.Substring(0,
                                                                                            block.MethodCalled.IndexOf('('))
                                                });
                                                linkCounter++;
                                            }
                                            lstTreeView = AppendNodeToExisting(block.StatementId + "_" + autoInt,
                                                                               lstTreeView, block, lstLinks, lstNodes, autoNodeId, ref linkCounter);
                                            autoInt++;
                                            //lstTreeView.AddRange(result);
                                        }
                                        else
                                        {
                                            lstTreeView.Add(new TreeView
                                            {
                                                ParentId      = statementM.StatementId.ToString(),
                                                GraphId       = block.StatementId.ToString(),
                                                HasChild      = false,
                                                GraphName     = block.OriginalStatement,
                                                BaseCommandId = block.BaseCommandId
                                            });
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            object[] bParameters =
                            {
                                new MySqlParameter("@stmtId", MySqlDbType.Int32)
                                {
                                    Value = statementM.StatementId
                                },
                                new MySqlParameter("@startBaseCommandId", MySqlDbType.Int32)
                                {
                                    Value = 8
                                },
                                new MySqlParameter("@endBaseCommandId", MySqlDbType.Int32)
                                {
                                    Value = 9
                                }
                            };
                            var stmtsBlock = _codeVortoService.StatementReferenceMasterRepository
                                             .ExecuteStoreProcedure <StatementReferenceMaster>("SpGetAnyGenericBlock",
                                                                                               bParameters).Result;
                            if (stmtsBlock.Count == 0)
                            {
                                lstTreeView.Add(new TreeView
                                {
                                    ParentId      = graphId,
                                    GraphId       = "222222",
                                    HasChild      = false,
                                    GraphName     = statementM.OriginalStatement,
                                    BaseCommandId = 25
                                });
                            }
                            foreach (var block in stmtsBlock)
                            {
                                if (block.BaseCommandId == 6)
                                {
                                    lstTreeView.Add(new TreeView
                                    {
                                        ParentId      = graphId,
                                        GraphId       = block.StatementId + "_" + autoInt,
                                        HasChild      = false,
                                        GraphName     = block.OriginalStatement,
                                        BaseCommandId = block.BaseCommandId
                                    });

                                    lstTreeView = AppendNodeToExisting(block.StatementId + "_" + autoInt,
                                                                       lstTreeView, block, lstLinks, lstNodes, autoNodeId, ref linkCounter);
                                    autoInt++;
                                    linkCounter++;
                                    //lstTreeView.AddRange(result);
                                }
                                else
                                {
                                    lstTreeView.Add(new TreeView
                                    {
                                        ParentId      = graphId,
                                        GraphId       = block.StatementId.ToString(),
                                        HasChild      = false,
                                        GraphName     = block.OriginalStatement,
                                        BaseCommandId = block.BaseCommandId
                                    });
                                }
                                autoInt++;
                            }
                        }
                    }
                    else
                    {
                        var treeView = new TreeView
                        {
                            GraphId        = statementM.StatementId.ToString(),
                            GraphName      = statementM.OriginalStatement,
                            HasChild       = false,
                            SpriteCssClass = "",
                            ParentId       = graphId,
                            BaseCommandId  = bId
                        };
                        lstTreeView.Add(treeView);
                    }
                }

                var copyOfLinks = lstLinks;
                foreach (var node in lstNodes)
                {
                    var childNodes = (from lnk in lstLinks
                                      where lnk.Origin == node.Id
                                      select lnk.Target
                                      into p
                                      select lstNodes.Find(n => n.Id == p)).ToList();
                    if (childNodes.Count > 1)
                    {
                        var duplicates = childNodes.GroupBy(x => x)
                                         .Where(g => g.Count() > 1).Select(g => g.Key).ToList();
                        if ((duplicates.Count > 0) && (duplicates[0] != null))
                        {
                            var links =
                                (from h in lstLinks
                                 where (h.Origin == node.Id) && (h.Target == duplicates.First().Id)
                                 select h)
                                .ToList();
                            if (!links.Any())
                            {
                                continue;
                            }

                            var linkText = links.Aggregate(string.Empty,
                                                           (current, jk) => current + jk.LinkText + ", ");
                            linkText = linkText.Substring(0, linkText.LastIndexOf(','));
                            links.First().LinkText = linkText;
                            foreach (var l in links)
                            {
                                if (l.LinkText == linkText)
                                {
                                    continue;
                                }
                                copyOfLinks.Remove(l);
                            }
                        }
                    }
                }


                var treeViewData = new TreeViewData(lstTreeView)
                {
                    Links = copyOfLinks,
                    Nodes = lstNodes
                };
                lstTreeViewData.Add(treeViewData);
                //var items = lstTreeView.ToList().FindAll(b => b.BaseCommandId == 6
                //    || b.BaseCommandId == 25).ToList();
                secondTab.Add(lstTreeView.ElementAt(0));
                secondTab.Add(lstTreeView.ElementAt(1));
                //TreeViewData treeViewDataNew = new TreeViewData(items);
                secondTab.AddRange(
                    lstTreeView.Where(
                        item => (item.BaseCommandId == 6) || (item.BaseCommandId == 25) || (item.BaseCommandId == 1)));
                var treeViewDataNew = new TreeViewData(secondTab);
                lstTreeViewData.Add(treeViewDataNew);
                return(Ok(lstTreeViewData));
            }
        }
 public WorkspaceWorkflowController(ICodeVortoService codeVortoService)
 {
     _codeVortoService = codeVortoService;
 }
        public async Task <IHttpActionResult> GenerateWorkflowDiagram(int projectId)
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var lstNodes     = new List <Node>();
                var workflowRef1 = await _codeVortoService.ActionWorkflowsRepository
                                   .GetDataFromSqlQuery <ActionWorkflows>(
                    " SELECT * FROM codevorto.actionworkflows where ProjectId = " + projectId + " ;");

                int?startId = 0;

                if (workflowRef1 != null)
                {
                    startId = workflowRef1[0].MethodStatementId;
                }
                var mySqlQuery = " Select * from statementreferencemaster where  StatementId Between " +
                                 " ( Select StatementId From StatementReferenceMaster Where BaseCommandId = 8  AND StatementId >= " +
                                 startId + " LIMIT 1 ) ANd " +
                                 " (Select StatementId From StatementReferenceMaster Where BaseCommandId = 9 AND StatementId >= " +
                                 startId + " LIMIT 1) AND StatementId > " + startId + ";";

                var workflowRef = await _codeVortoService.StatementReferenceMasterRepository
                                  .GetDataFromSqlQuery <StatementReferenceMaster>(mySqlQuery);

                var allClassDeclarations = await _codeVortoService.StatementReferenceMasterRepository
                                           .GetDataFromSqlQuery <StatementReferenceMaster>(
                    "SELECT * FROM StatementReferenceMaster where ClassNameDeclared IS NOT NULL group by ClassNameDeclared;");

                var classCollection =
                    allClassDeclarations.FindAll(s => s.ClassNameDeclared != null);
                //var lstTreeView = new List<TreeView>();
                var done = false;
                foreach (var cls in classCollection)
                {
                    if (done)
                    {
                        break;
                    }
                    foreach (var workFlow in workflowRef)
                    {
                        if (!workFlow.OriginalStatement.Contains("New " + cls.ClassNameDeclared + "()"))
                        {
                            continue;
                        }
                        var newStartPoint = workFlow;
                        var node          = new Node
                        {
                            Id              = newStartPoint.StatementId,
                            Name            = "New " + cls.ClassNameDeclared + "()",
                            ShapeId         = "RoundRect",
                            Color           = "green",
                            StatementTypeId = newStartPoint.StatementId
                        };
                        lstNodes.Add(node);
                        done = true;
                        break;
                    }
                }
                //var statementRef1 = await _codeVortoService.StatementReferenceMasterRepository
                //    .GetEntityData<StatementReferenceMaster>(s => s.StatementId == workflowRef[0].StatementId);

                var onStartSql =
                    "Select * from statementreferencemaster where MethodName = 'OnStart';";
                var stmtMaster =
                    await _codeVortoService.StatementReferenceMasterRepository
                    .GetDataFromSqlQuery <StatementReferenceMaster>(onStartSql);

                var methodQuery = " Select * from statementreferencemaster where  StatementId Between " +
                                  " ( Select StatementId From StatementReferenceMaster Where  BaseCommandId = 8  AND StatementId >= " +
                                  " " + stmtMaster[0].StatementId + " LIMIT 1 ) ANd " +
                                  " (Select StatementId From StatementReferenceMaster Where BaseCommandId = 9 AND StatementId >= " +
                                  " " + stmtMaster[0].StatementId + " LIMIT 1) AND StatementId >= " +
                                  stmtMaster[0].StatementId + " ; ";
                var statementMaster = await _codeVortoService.StatementReferenceMasterRepository
                                      .GetDataFromSqlQuery <StatementReferenceMaster>(methodQuery);

                var tempData = statementMaster;

                foreach (var statementReference in statementMaster)
                {
                    if (lstNodes.Exists(l => l.Name == statementReference.ClassCalled))
                    {
                        continue;
                    }
                    if (statementReference.BaseCommandId == 11) // Method Declatarion
                    {
                    }
                    if (statementReference.BaseCommandId == 5) // Call Internal
                    {
                        var node = new Node
                        {
                            Name            = statementReference.ClassCalled,
                            Id              = statementReference.StatementId,
                            Color           = "red",
                            ShapeId         = "RoundRect",
                            StatementTypeId = statementReference.StatementId
                        };
                        lstNodes.Add(node);
                    }
                    else if (statementReference.BaseCommandId == 3) // Loop
                    {
                        var node = new Node
                        {
                            Name            = statementReference.VariableNameDeclared,
                            Id              = statementReference.StatementId,
                            Color           = "red",
                            ShapeId         = "Rectangle",
                            StatementTypeId = statementReference.StatementId
                        };
                        lstNodes.Add(node);
                    }
                    else if (statementReference.BaseCommandId == 1) // IF
                    {
                        var ifString = statementReference.OriginalStatement.Split(new[] { "If " }
                                                                                  , StringSplitOptions.RemoveEmptyEntries);
                        var condition = ifString[0].Split(new[] { " Then" }, StringSplitOptions.RemoveEmptyEntries)[0];
                        var node      = new Node
                        {
                            Name            = condition,
                            Id              = statementReference.StatementId,
                            Color           = "#f4b183",
                            ShapeId         = "Decision",
                            StatementTypeId = statementReference.StatementId
                        };
                        lstNodes.Add(node);
                    }
                    else if (statementReference.BaseCommandId == 6) // Call External
                    {
                        var node = new Node
                        {
                            Name            = statementReference.VariableNameDeclared,
                            Id              = statementReference.StatementId,
                            Color           = "purple",
                            ShapeId         = "RoundRect",
                            StatementTypeId = statementReference.StatementId
                        };
                        lstNodes.Add(node);
                    }
                }
                var lstLinks = new List <Link>();
                foreach (var stmtMasterCopy in tempData)
                {
                    if (stmtMasterCopy.BaseCommandId == 8)
                    {
                        //var reference = abc;
                        //var stmtMasterNew = await _codeVortoService.StatementReferenceMasterRepository
                        //    .FindItem<StatementReferenceMaster>(s => s.MethodCalled == reference.MethodCalled);
                        var link = new Link
                        {
                            LinkText = stmtMasterCopy.MethodName,
                            Origin   = lstNodes.First().Id,
                            Target   = 244
                        };
                        lstLinks.Add(link);
                    }
                    else if (stmtMasterCopy.BaseCommandId == 5)
                    {
                        var destNode =
                            lstNodes.Find(n => (n.Name == stmtMasterCopy.ClassCalled) && (n.ShapeId == "RoundRect") &&
                                          (n.Id != stmtMasterCopy.StatementId));
                        if (destNode == null)
                        {
                            continue;
                        }
                        var link = new Link
                        {
                            Origin   = lstNodes.First().Id,
                            Target   = destNode.Id,
                            LinkText = stmtMasterCopy.MethodCalled
                        };
                        lstLinks.Add(link);
                    }
                }
                var lstFlowcharts = new FlowChart
                {
                    Nodes = lstNodes,
                    Links = lstLinks
                };

                return(Ok(lstFlowcharts));
            }
        }
        public List <TreeView> AppendNodeToExisting(string statementId, List <TreeView> currentTreeView,
                                                    StatementReferenceMaster statementM, List <Link> lstLinks, List <Node> lstNodes, int autoNodeId,
                                                    ref int linkCounter)
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var      className     = statementM.ClassCalled.Split('.').Last();
                object[] parametersExp =
                {
                    new MySqlParameter("@clsName", MySqlDbType.VarChar)
                    {
                        Value = className
                    }
                };
                var callExtExpandedCode = _codeVortoService.StatementReferenceMasterRepository
                                          .ExecuteStoreProcedure <StatementReferenceMaster>("SpGetClassMethods", parametersExp)
                                          .ContinueWith(t => t.Result).Result;

                if (callExtExpandedCode.Count == 0)
                {
                    var item = currentTreeView.Find(p => p.ParentId == statementId);
                    if (item == null)
                    {
                        currentTreeView.Add(new TreeView
                        {
                            ParentId      = statementId,
                            GraphId       = "11d11111",
                            HasChild      = true,
                            GraphName     = "<span class='nodemissingelement'>&nbsp;Definition Missing&nbsp;</span>",
                            BaseCommandId = 25
                        });
                    }
                }
                else
                {
                    foreach (var statementK in callExtExpandedCode)
                    {
                        if (!statementM.MethodCalled.StartsWith(statementK.MethodName))
                        {
                            continue;
                        }
                        var      blockStmtId = statementK.StatementId;
                        object[] bParameters =
                        {
                            new MySqlParameter("@stmtId", MySqlDbType.Int32)
                            {
                                Value = blockStmtId
                            },
                            new MySqlParameter("@startBaseCommandId", MySqlDbType.Int32)
                            {
                                Value = 8
                            },
                            new MySqlParameter("@endBaseCommandId", MySqlDbType.Int32)
                            {
                                Value = 9
                            }
                        };
                        var stmtsBlock = _codeVortoService.StatementReferenceMasterRepository
                                         .ExecuteStoreProcedure <StatementReferenceMaster>("SpGetAnyGenericBlock", bParameters).Result;
                        foreach (var block in stmtsBlock)
                        {
                            if (block.BaseCommandId == 6)
                            {
                                currentTreeView.Add(new TreeView
                                {
                                    ParentId      = statementId,
                                    GraphId       = block.StatementId + "_" + statementId,
                                    HasChild      = false,
                                    GraphName     = block.OriginalStatement,
                                    BaseCommandId = block.BaseCommandId
                                });
                                var block1 = block;
                                var sz     = (from t in lstNodes where t.Name == block1.ClassCalled select t).ToList();
                                if (!sz.Any())
                                {
                                    lstNodes.Add(new Node
                                    {
                                        Id            = autoNodeId,
                                        Name          = block.ClassCalled,
                                        ParentId      = 0,
                                        BaseCommandId = block.BaseCommandId,
                                        ShapeId       = "RoundRect",
                                        Color         = "#f5bd6a",
                                        Height        = "15",
                                        Width         = "100"
                                    });
                                    //var sz1 = (from f in lstNodes where f.Name == statementM.ClassCalled select f).ToList();
                                    lstLinks.Add(new Link
                                    {
                                        Target   = statementM.StatementId,
                                        Origin   = lstNodes.Last().Id,
                                        LinkText = "[ " + linkCounter + " ] " +
                                                   statementM.MethodCalled.Substring(0,
                                                                                     statementM.MethodCalled.IndexOf('('))
                                    });
                                    linkCounter++;
                                }
                                else
                                {
                                    var asz = (from n in lstNodes where n.Name == statementM.ClassCalled select n)
                                              .ToList();
                                    lstLinks.Add(new Link
                                    {
                                        Origin   = asz.First().Id,
                                        Target   = sz.First().Id,
                                        LinkText = "[ " + linkCounter + " ] " +
                                                   block.MethodCalled.Substring(0, block.MethodCalled.IndexOf('('))
                                    });
                                    linkCounter++;
                                }
                                currentTreeView = AppendNodeToExisting(block.StatementId + "_" + statementId,
                                                                       currentTreeView, block, lstLinks, lstNodes, autoNodeId, ref linkCounter);
                            }
                            else
                            {
                                currentTreeView.Add(new TreeView
                                {
                                    ParentId      = statementId,
                                    GraphId       = block.StatementId.ToString(),
                                    HasChild      = false,
                                    GraphName     = block.OriginalStatement,
                                    BaseCommandId = block.BaseCommandId
                                });
                            }
                        }
                    }
                }
                return(currentTreeView);
            }
        }
Example #30
0
        public async Task <HttpResponseMessage> StartProcessUbProject(int projectId)
        {
            using (_codeVortoService = new CodeVortoService())
            {
                var projectMasterRepository = new ProjectMasterRepository(new AppDbContext());
                var projectDetails          = projectMasterRepository.GetItem(projectId);
                if (projectDetails == null)
                {
                    return(new HttpResponseMessage(HttpStatusCode.BadRequest)
                    {
                        Content = new StringContent("Project not found: " + projectId)
                    });
                }
                var entensionList =
                    await _codeVortoService.FileTypeExtensionRepository.GetAllListItems(
                        p => p.LanguageId == projectDetails.LanguageId).ConfigureAwait(true);

                var strExtensions = new List <string>();
                strExtensions.AddRange(entensionList.Select(extension => extension.FileExtension));
                var lstFileMasters = new List <FileMaster>();
                var projectPath    = projectDetails.PhysicalPath;
                var solutionId     = projectDetails.SolutionId;
                var directoryList  = new List <string> {
                    projectPath
                };
                var ignoredFile =
                    await projectMasterRepository.GetAllIgnoredFiles <IgnoreFiles>(projectDetails.LanguageId)
                    .ConfigureAwait(false);

                var regexPattern = new Regex(@"RECEIVE\s+MAP|SEND\s+MAP");
                foreach (var directory in directoryList)
                {
                    try
                    {
                        var allFiles = Directory.GetFiles(directory, "*.*", SearchOption.AllDirectories)
                                       .Where(s => strExtensions.Any(s.EndsWith));
                        var enumerator = allFiles.GetEnumerator();
                        while (enumerator.MoveNext())
                        {
                            var currentFile = enumerator.Current;
                            if (ignoredFile.Any(f => f.FileName == Path.GetFileName(currentFile)))
                            {
                                continue;
                            }
                            if (currentFile == null)
                            {
                                continue;
                            }
                            var fileLines = File.ReadAllLines(currentFile).ToList();
                            var exist     = fileLines.Any(f => regexPattern.IsMatch(f));
                            var fileType  = exist ? "Online" : "Batch";
                            var lineCount = fileLines.Count(line => !string.IsNullOrWhiteSpace(line));
                            var fileName  = Path.GetFileName(currentFile);
                            if (string.IsNullOrEmpty(fileName))
                            {
                                continue;
                            }
                            var extension   = Path.GetExtension(currentFile);
                            var extensionId =
                                entensionList.First(e => e.FileExtension == extension).FileTypeExtensionId;
                            var fileMaster = new FileMaster
                            {
                                FileId              = 0,
                                FileName            = fileName,
                                FilePath            = currentFile,
                                FileTypeExtensionId = extensionId,
                                ProjectId           = projectId,
                                SolutionId          = solutionId,
                                DoneParsing         = 0,
                                LinesCount          = lineCount,
                                FileType            = fileType
                            };
                            lstFileMasters.Add(fileMaster);
                        }
                        enumerator.Dispose();
                        await
                        _codeVortoService.FileMasterRepository.BulkInsert(lstFileMasters).ConfigureAwait(false);
                    }
                    catch (Exception exception)
                    {
                        Console.WriteLine(exception.InnerException);
                        return(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                        {
                            Content =
                                new ObjectContent(typeof(Exception), exception.InnerException,
                                                  new JsonMediaTypeFormatter())
                        });
                    }
                }

                return(new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StringContent("Cobol processing is done")
                });
            }
        }