Esempio n. 1
0
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        string fullName = txtFullName.Text;
        string rawDate  = txtDate.Text;

        if (fullName == "")
        {
            lblErrors.Text = "נא מלא שם";
            return;
        }
        string[] dateSplit = rawDate.Split('/');
        if (dateSplit.Length != 3)
        {
            lblErrors.Text = "נא הכנס תאריך הפורמט המתאים" + "dd/mm/yyyy";
            return;
        }
        int day   = int.Parse(dateSplit[0]);
        int month = int.Parse(dateSplit[1]);
        int year  = int.Parse(dateSplit[2]);

        if ((day <= 0) || (day > 31))
        {
            lblErrors.Text = "היום לא נכון,נא הכנס תאריך הפורמט המתאים" + "dd/mm/yyyy";
            return;
        }
        if ((month <= 0) || (month > 12))
        {
            lblErrors.Text = "החודש לא נכון,נא הכנס תאריך הפורמט המתאים" + "dd/mm/yyyy";
            return;
        }
        if ((year < 1900) || (year > 2018))
        {
            lblErrors.Text = "השנה לא נכון,נא הכנס תאריך הפורמט המתאים" + " dd/mm/yyyy";
            return;
        }
        lblErrors.Text = "";
        ZodiacCalculator.ZodiacCalculator calc = new ZodiacCalculator.ZodiacCalculator();
        DateTime tempDate = new DateTime(year, month, day);
        string   fortune  = calc.ZodiacSign(day, month, year);
        //string sign = calc.ZodiacSign(tempDate);
        string hebrewFortune = calc.ZodiacSignHebrew(day, month, year);
        //string hebrewSign = calc.ZodiacSignHebrew(tempDate);
        int birthNumer = calc.BirthNumber(day, month, year);
        //int birthNumer = calc.BirthNumber(tempDate);
        int nameNumber = calc.NameNumber(fullName);

        CellFourtune.Text    = hebrewFortune + " " + fortune;
        CellNameNumber.Text  = nameNumber.ToString();
        CellBirthNumber.Text = birthNumer.ToString();
        IList <string> attributesList = DataAccessLayer.DAL.GetMatchedAttributesAsString(birthNumer, fortune, nameNumber);
        string         attributes     = "";

        foreach (string attribute in attributesList)
        {
            attributes = attributes + attribute + "<br/>";
        }
        CellAttributes.Text = attributes;
        tblResults.Visible  = true;
    }
    public static List <FortuneWrapper> GetData(List <string> sentAttributes)
    {
        List <FortuneWrapper> fortunes = new List <FortuneWrapper>();



        string tempFile = Path.Combine(SitioConfiguracion.TempPath, "dump1.txt");

        StreamReader reader = new StreamReader(tempFile);


        //Linea en blank se ignoran
        //Linea que no contenga al menos dos elementos se ignoran
        //1ra columna es el nombre
        //2da columna es la fecha
        //Linea Si no tienes formato de fecha correcto se ignora

        int lineNumber = 0;

        while (!reader.EndOfStream)
        {
            lineNumber++;

            string[] dataList = null;
            string   line1    = reader.ReadLine();


            DateTime birthDate = new DateTime();

            bool isValidLine = ValidateLine(ref dataList, line1, ref birthDate);

            if (!isValidLine)
            {
                continue;
            }



            string name = dataList[0];

            ZodiacCalculator.ZodiacCalculator calculator = new ZodiacCalculator.ZodiacCalculator();

            int birthNumer = calculator.BirthNumber(birthDate);
            // cnText.Text = calculator.CurrentNumber(birthDate).ToString();
            int    nameNumber = calculator.NameNumber(name);
            string fortune    = calculator.ZodiacSign(birthDate);


            DataSet   matchedAttributes    = DAL.GetMatchedAttributes(birthNumer, fortune, nameNumber);
            DataTable tblmatchedAttributes = matchedAttributes.Tables[0];

            string[] attributes = new string[tblmatchedAttributes.Rows.Count];
            // string attributes = "";

            for (int i = 0; i < tblmatchedAttributes.Rows.Count; i++)
            {
                string attribute = tblmatchedAttributes.Rows[i]["attribute"].ToString();
                attributes[i] = attribute;
                //     attributes += attribute + ", ";
            }


            //Selecciona los attributos que coinciden con los parametros sendAttributes
            attributes = attributes.Where(
                delegate(string t)
            {
                return(sentAttributes.Contains(t));
            }
                ).ToArray();

            attributes.OrderBy(s => s);


            var attributesString = string.Join(",", attributes);

            // Sacamos lineas adicionales en un campo aparte

            string[] extraColumns = null;

            if (dataList.Count() > 2)
            {
                extraColumns = new string[dataList.Count() - 2];

                // dataList.CopyTo(extraColumns, 2);

                for (int i = 0; i < extraColumns.Count(); i++)
                {
                    extraColumns[i] = dataList[i + 2];
                }
            }

            FortuneWrapper fortuneWrapper = new FortuneWrapper
            {
                lineNumber        = lineNumber,
                Name              = name,
                BirthDate         = birthDate,
                BirthNumber       = birthNumer,
                NameNumber        = nameNumber,
                Fortune           = fortune,
                Attributes        = attributesString,
                SummingAttributes = attributes.Length,
                ExtraColumns      = extraColumns
            };

            fortunes.Add(fortuneWrapper);
        }

        reader.Close();

        return(fortunes.OrderByDescending(f => f.SummingAttributes).ToList());
    }