void CreateOpportunityProcess(LoginResult Session, Opportunity opportunity)
        {
            try
            {
                Dictionary <int, string> errMessage = new Dictionary <int, string>();

                Logger.Info("------------Started getting opportunities from DM------------");
                //1. Get opportunities from DM
                var opportunities = opportunity.GetOpportunities();

                if (opportunities != null)
                {
                    if (opportunities.Count > 0)
                    {
                        Logger.Info("Total number of opportunities found are: " + opportunities.Select(row => row.OrderID).Distinct().Count().ToString());
                        Logger.Info("------------Finished getting opportunities from DM------------");

                        var otisExceptions = FindOTISExceptions(opportunities, Session, opportunity);

                        var missingRecords = FindMissingSFReferences(opportunities, Session, opportunity);

                        if (missingRecords.Count > 0)
                        {
                            if (otisExceptions.Count > 0)
                            {
                                missingRecords = missingRecords.Concat(otisExceptions).ToList <Entity.MissingRecordEntity>();
                            }
                            PostMissingRecords(missingRecords, opportunities, Session, opportunity);
                        }
                        else if (otisExceptions.Count > 0)
                        {
                            PostMissingRecords(otisExceptions, opportunities, Session, opportunity);
                        }
                        else
                        {
                            Logger.Info("No missing record(s) found.");
                            Logger.Info("------------Finished checking missing records------------");
                        }

                        //Opportunities are filetred through DM and Salesforce validation check. Its important to check the count before creating the opportunities
                        CreateOpportunity(opportunities, Session, opportunity);
                    }
                    else
                    {
                        Logger.Info("No opportunities found from DM.");
                        Logger.Info("------------Finished getting opportunities from DM------------");
                    }
                }
                else
                {
                    Logger.Info("No opportunities found from DM.");
                    Logger.Info("------------Finished getting opportunities from DM------------");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }