private static Licitacao CreateQuote(HtmlDocument htmlQuote, string quoteLink, out string situacao)
        {
            Licitacao l     = new Licitacao();
            int       count = 0;

            situacao = null;

            try
            {
                l.IdFonte    = 508;
                l.LinkEdital = string.Format(Constants.CN_COTACAO_LINK, quoteLink);
                l.LinkSite   = Constants.CN_HOST;
                l.Excluido   = 0;
                l.SegmentoAguardandoEdital = 0;
                l.DigitacaoUsuario         = 43; //Robo
                l.Lote           = lote;
                l.Modalidade     = nameToModalidade.ContainsKey("COTACAO ELETRONICA") ? nameToModalidade["COTACAO ELETRONICA"] : null;
                l.ItensLicitacao = l.ItensLicitacao ?? new List <ItemLicitacao>();

                foreach (var row in htmlQuote.DocumentNode.Descendants("tr").Where(x => x.Attributes.Contains("height")))
                {
                    switch (count)
                    {
                    case 0:
                        string uasg         = row.InnerText.Split('-')[0].TrimEnd().Replace("UASG: ", "");
                        string departamento = string.Empty;
                        if (row.InnerText.Split('-').Count() > 2)
                        {
                            for (int i = 1; i < row.InnerText.Split('-').Count(); i++)
                            {
                                if (i != 1)
                                {
                                    departamento = departamento + "-" + row.InnerText.Split('-')[i].TrimStart();
                                }
                                else
                                {
                                    departamento = row.InnerText.Split('-')[i].TrimStart();
                                }
                            }
                        }
                        else
                        {
                            departamento = row.InnerText.Split('-')[1].TrimStart();
                        }
                        l.Uasg         = uasg;
                        l.Departamento = departamento;
                        break;

                    case 1:
                        string numero = row.InnerText.Split(':')[1].TrimStart();
                        l.Num = numero;
                        break;

                    case 2:
                        string objeto = row.InnerText.Replace("Objeto: ", string.Empty);
                        l.Objeto = objeto;
                        break;

                    case 3:
                        string dataEntrega = row.InnerText.Split(':')[1].TrimStart();
                        l.EntregaData = Convert.ToDateTime(dataEntrega);
                        break;

                    case 4:
                        string       obsLink = row.ChildNodes[0].ChildNodes[1].Attributes["href"].Value.ToString().Remove(0, 8);
                        HtmlDocument htmlObs = WebHandle.GetHtmlDocOfPage(string.Format(Constants.CN_COTACAO_LINK, obsLink), Encoding.GetEncoding("ISO-8859-1"));
                        string       obs     = Regex.Replace(htmlObs.DocumentNode.InnerHtml.ToString(), "<.*?>", string.Empty)
                                               .Replace("\n\n\n\n  \tCOMPRASNET - O Portal de Compras do Governo Federal :: Observações Gerais da Cotação Eletrônica.\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n    function erroLogin(){\n        window.opener.erroLogin();\n        window.close();\n    }\n\n\n\n    function popup(ev, elA, features) {\n        var url, target;\n        url = elA.getAttribute(\"href\");\n        target = elA.getAttribute(\"target\");\n        window.open(url, target, features);\n\n        if (ev.cancelBubble != undefined) { //IE\n            ev.cancelBubble = true; \n            ev.returnValue = false;\n        }\n        if (ev.preventDefault) ev.preventDefault(); //Outros\n    }\n\n\n\n\n\n\nAguarde!\n\n\nObservações Gerais da Cotação Eletrônica\n\r\n              ", string.Empty)
                                               .Replace("  ", string.Empty);
                        if (icms)
                        {
                            l.Observacoes = "ICMS: Sim\n\n" + obs;
                        }
                        else
                        {
                            l.Observacoes = "ICMS: Não\n\n" + obs;
                        }
                        break;

                    case 5:
                        situacao   = Regex.Replace(StringHandle.GetMatches(row.InnerHtml, @"Situação:( *)</b><span(.*?)>(.*?)</span")[0].ToString(), @"Situação:|</b><span(.*?)>|</span", "").Trim();
                        l.Situacao = situacao;
                        break;

                    case 6:
                        string dataAbertura = row.InnerText.Split(':')[1].TrimStart().Split('(')[0].Replace('h', ':');
                        l.AberturaData = DateHandle.Parse(dataAbertura, "dd/MM/yyyy hh:mm");
                        break;

                    case 7:
                        string valor = row.InnerText.Split(':')[1].TrimStart();
                        l.ValorMax = valor;
                        break;
                    }
                    count++;
                }

                l.IdLicitacaoFonte = Convert.ToInt64(l.Uasg + l.Num.ToString());

                Licitacao oldLic = LicitacaoRepository.FindByUASG(l.Uasg);

                if (oldLic != null)
                {
                    l.Orgao       = oldLic.Orgao;
                    l.EstadoFonte = oldLic.EstadoFonte;
                    l.CidadeFonte = oldLic.CidadeFonte;
                    l.Endereco    = oldLic.Endereco;
                    l.Cidade      = oldLic.Cidade;
                    l.Estado      = oldLic.Estado;
                }
                else
                {
                    l.Orgao = OrgaoRepository.FindOrgao(l.Departamento);
                    if (l.Orgao == null)
                    {
                        Orgao           org  = OrgaoRepository.CreateOrgao(l.Departamento, l.Observacoes);
                        OrgaoRepository repo = new OrgaoRepository();
                        repo.Insert(org);
                        l.Orgao = org;
                    }
                    l.Estado      = l.Orgao.Estado;
                    l.EstadoFonte = l.Orgao.Estado;
                    l.Cidade      = ufToCapital.ContainsKey(l.EstadoFonte) ? ufToCapital[l.EstadoFonte] : null;
                    Dictionary <string, int?> ufToCidade = ufToNomeCidadeToIdCidade.ContainsKey(l.EstadoFonte) ? ufToNomeCidadeToIdCidade[l.EstadoFonte] : null;
                    l.CidadeFonte = ufToCidade != null?ufToCidade.ContainsKey(StringHandle.RemoveAccent(l.Cidade.ToUpper())) ? ufToCidade[StringHandle.RemoveAccent(l.Cidade.ToUpper())] : CityUtil.GetCidadeFonte(l.Cidade, ufToCidade) : CityUtil.GetCidadeFonte(l.Cidade, ufToCidade);

                    l.Endereco = null;
                }

                GetItens(htmlQuote, l);

                return(LicitacaoController.IsValid(l, out mensagemErro) ? l : null);
            }
            catch (Exception e)
            {
                if (l.Orgao == null)
                {
                    RService.Log("Exception (CreateQuote) " + Name + ": Órgão não foi localizado - ver log do serviço RService" + " at {0}", Path.GetTempPath() + Name + ".txt");
                }
                else
                {
                    RService.Log("Exception (CreateQuote) " + Name + ": " + e.Message + " / " + e.StackTrace + " / " + e.InnerException + " at {0}", Path.GetTempPath() + Name + ".txt");
                }

                return(null);
            }
        }