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()); }