internal static void close_tb(FD fd) { #if !_WIN32 close(fd); #else CloseHandle(fd); #endif }
void AddImagem() { FD.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png"; if (FD.ShowDialog() == DialogResult.OK) { PB_Foto.ImageLocation = FD.FileName; } }
private void BFont_Click(object sender, EventArgs e) { if (FD.ShowDialog() != System.Windows.Forms.DialogResult.OK) { return; } LFont.Text = FD.Font.FontFamily.Name; LFont.Font = FD.Font; }
/// <summary> /// Ελέγχει και επιστρέφει true αν υπάρχει παρόμοια συναρτησιακή εξάρτηση /// </summary> /// <param name="fd">Το αντικείμενο της συναρτησιακής εξάρτησης που ελέγχουμε</param> /// <param name="id">Ο αύξοντας αριθμός της υπό επεξεργασία συναρτησιακής εξάρτησης</param> public bool FDExists(FD fd, int id) { for (int i = 0; i < fdList.Count; i++) { if (fdList[i].ToString() == fd.ToString() && i != id) { return(true); //βρέθηκε παρόμοια συναρτησιακή εξάρτηση } } return(false); //δεν υπάρχει παρόμοια συναρτησιακή εξάρτηση }
private void btnKayitYeri_Click(object sender, EventArgs e) { if (FD.ShowDialog() == System.Windows.Forms.DialogResult.OK)//Ekrandan dosya seçmek için { SecilenYer = FD.SelectedPath; if (SecilenYer != "") { btnKayitYeri.Enabled = false; btnDinle.Enabled = true; } } }
private void button1_Click(object sender, EventArgs e) { FD.Filter = "主程序文件(*.exe;)|*.exe|所有文件(*.*)|**"; FD.Multiselect = true; if (FD.ShowDialog() == DialogResult.OK) { if (FD.FileName != "") { textBox1.Text = FD.FileName; } } }
private void btValueFont_Click(object sender, EventArgs e) { FD.Font = lbNumber11.Font; if (FD.ShowDialog(this) == DialogResult.OK) { // save stuff Fonts.SetUserFont(GUI.GUI_Fonts.FKinds.Value, FD.Font, (GUI.FontSize)cbxSize.SelectedIndex, cxCondensed.Checked); Fonts.SetUserFont(GUI.GUI_Fonts.FKinds.Value2, FD.Font, (GUI.FontSize)cbxSize.SelectedIndex, cxCondensed.Checked); Fonts.SetFontsize((GUI.FontSize)cbxSize.SelectedIndex); SetFont( ); } }
private void btLabelFont_Click(object sender, EventArgs e) { // set Dialog Props FD.Font = lbLabel1.Font; if (FD.ShowDialog(this) == DialogResult.OK) { // save stuff Fonts.SetUserFont(GUI.GUI_Fonts.FKinds.Lbl, FD.Font, (GUI.FontSize)cbxSize.SelectedIndex, cxCondensed.Checked); Fonts.SetFontsize((GUI.FontSize)cbxSize.SelectedIndex); SetFont( ); } }
/// <summary> /// Μέθοδος ελέγχου και προσθήκης νέας συναρτησιακής εξάρτησης στην FDList /// </summary> /// <param name="fd">Το αντικείμενο συναρτησιακής εξάρτησης fd θα ελεγχθεί αν υπάρχει κάποιο άλλο παρόμοιο με αυτό πριν καταχωρηθεί.</param> public bool FDCreate(FD fd) { //ελέγχεται αν η νέα συναρτησιακή εξάρτηση είναι παρόμοια με μια άλλη, κι αν ναι, επιστρέφεται η ένδειξη false if (FDExists(fd, -1)) { return(false); } //το νέο αντικείμενο προστίθεται στην FDList fdList.Add(fd); //επιστρέφεται η ένδειξη true return(true); }
public static void BuildMinuteDayNodes(ThreadControl tc) { // this should be called AFTER updated yesterday's ticks AND data tracker no data days updated List <string> symbols = new List <string>(Global.State.AllSymbols); symbols.Shuffle(); symbols.Remove("spy"); symbols.Remove("aapl"); symbols.Add("spy"); symbols.Add("aapl"); symbols.Reverse(); ZonedDateTime ie = SystemClock.Instance.GetCurrentInstant().InZone(UCDT.TimeZones.Eastern); // set the current date to yesterday via eastern timezone just to be safe DateTime dt = new DateTime(ie.Year, ie.Month, ie.Day, 0, 0, 0, DateTimeKind.Unspecified).AddDays(-20); DateTime firstDataDay = Global.State.DataTracker.DataDays[0].DT; while (dt > firstDataDay && tc.CheckNotStopped()) { FD fd = new FD(dt); Parallel.For(0, symbols.Count, new ParallelOptions { MaxDegreeOfParallelism = 20 }, n => { if (DataMethods.DayNodesDataCacheable(symbols[n], fd)) { Stopwatch sw = new Stopwatch(); sw.Start(); NodesData nodes = DataMethods.GetCachedDayNodesData(symbols[n], fd, Interval.HalfSecond, computeNodes: false, justCache: true); sw.Stop(); tc.Log.AddLine("[" + symbols[n] + "] " + fd.ToString() + " Done. Took " + UC.MillisecondsToSeconds(sw.ElapsedMilliseconds, 2) + " sec(s)"); } else { tc.Log.AddLine("[" + symbols[n] + "] " + fd.ToString() + ". Not cacheable."); } }); dt = dt.AddDays(-1); } }
private void button2_Click(object sender, EventArgs e) { if (textBox2.Text != "") { FD.SelectedPath = textBox2.Text; } if (FD.ShowDialog() == DialogResult.OK) { textBox2.Text = FD.SelectedPath; IniFile ai = IniFile.FromFile(sFileSettings); ai["Settings"]["WorkingFolder"] = textBox2.Text; ai.Save(sFileSettings); } }
public static string BrowseFile(string Title, string Filter = BROWSE_FILTER_ALL, string Preselected = null, bool IsSave = false) { FileDialog FD; if (IsSave) { FD = new SaveFileDialog(); ((SaveFileDialog)FD).OverwritePrompt = true; } else { FD = new OpenFileDialog(); } using (FD) { if (string.IsNullOrEmpty(Title)) { FD.Title = IsSave ? "Save As..." : "Open..."; } else { FD.Title = Title; } if (string.IsNullOrEmpty(Filter)) { FD.Filter = BROWSE_FILTER_ALL; } else { FD.Filter = Filter; } if (!string.IsNullOrEmpty(Preselected)) { if (Directory.Exists(Preselected)) { FD.InitialDirectory = Preselected; } else { FD.InitialDirectory = Path.GetDirectoryName(Preselected); FD.FileName = Path.GetFileName(Preselected); } } if (FD.ShowDialog() == DialogResult.OK) { return(FD.FileName); } } return(null); }
public static void RefreshNoDataDaysAndSlapCache(ThreadControl tc) { ZonedDateTime ie = SystemClock.Instance.GetCurrentInstant().InZone(UCDT.TimeZones.Eastern); // set the current date to two days ago via eastern timezone DateTime dt = new DateTime(ie.Year, ie.Month, ie.Day, 0, 0, 0, DateTimeKind.Unspecified).AddDays(-2); // ZonedDateTime zdt = UCDT.ZonedDateTimetoZonedDateTime(currentDate, UCDT.TimeZones.Eastern); List <FD> noDataDays = new List <FD>(); while (dt.Year > 2018 && tc.CheckNotStopped()) { tc.Log.AddLine("Checking: " + dt.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)); if (!StockAPI.Methods.DateHasData(dt.Year, dt.Month, dt.Day, false)) { FD fd = new FD(dt); tc.Log.AddLine("Found a day with no data: " + fd.ToStringLong()); noDataDays.Add(fd); } dt = dt.AddDays(-1); } if (tc.CheckNotStopped()) { DBMethods.RefreshDaysTracker(noDataDays, "NoData"); noDataDays.Sort(); for (int n = 0; n < Global.State.DataTracker.NoDataDays.Count; n++) { // check if we didn't find one that was found before if (noDataDays.BinarySearch(Global.State.DataTracker.NoDataDays[n]) < 0) { tc.Log.AddLine("FOUND A DAY IN THE OLD DATA THAT'S NOT IN THE NEW DATA: " + Global.State.DataTracker.NoDataDays[n].ToStringLong()); // This means that the scan before got a false nodataday. // Could be API error or something. // DELETE ANY CACHED DAY FOR THIS DAY BECAUSE WE MAY HAVE CACHED EMPTY NODES } } App.InitDataTracker(); } }
/// <summary> /// Gets the day in the past where the amount of trading days from [day, startDay) is amountOfDays /// </summary> /// <param name="startDay"></param> /// <param name="amountOfDays"></param> /// <returns></returns> public static FD GetDataDaysStartDay(FD startDay, int amountOfDays) { int count = 0; DateTime currentDateTime = new DateTime(startDay.DT.Year, startDay.DT.Month, startDay.DT.Day, 0, 0, 0, DateTimeKind.Unspecified); do { currentDateTime = currentDateTime.AddDays(-1); if (Global.State.DataTracker.DayHasData(new FD(currentDateTime))) { count++; } } while (count < amountOfDays); return(new FD(currentDateTime)); }
private void button1_Click(object sender, EventArgs e) { dataGridView1.Rows.Clear(); FD.Filter = "主程序文件(*.exe;)|*.exe|所有文件(*.*)|**"; FD.Multiselect = true; if (FD.ShowDialog() == DialogResult.OK) { if (FD.FileName != "") { textBox2.Text = FD.FileName; string PathLike = Path.GetDirectoryName(FD.FileName); Qline = PathLike.Length; NewRevLab.Text = FileVersionInfo.GetVersionInfo(FD.FileName).FileVersion; GetAllFile(PathLike); } } }
/// <summary> /// Η επεξεργασμένη πλέον συναρτησιακή εξάρτηση προστίθεται στην λίστα fdList. /// </summary> protected void btnEditFDΟΚClick(object sender, EventArgs e) { int index = Int32.Parse(gridViewFDHiddenField.Value); if (index >= 0) { FD fd = new FD(); // Η προσωρινή. foreach (GridViewRow item in gridViewEditLeftFD.Rows) { if ((item.Cells[0].FindControl("checkBoxEditLeftFD") as CheckBox).Checked) { fd.AddLeft(attrList[item.RowIndex]); } } foreach (GridViewRow item in gridViewEditRightFD.Rows) { if ((item.Cells[0].FindControl("checkBoxEditRightFD") as CheckBox).Checked) { fd.AddRight(attrList[item.RowIndex]); } } if (!FDExists(fd, index)) { fdList[index] = fd; populateFdGridView(fdList); log.InnerText = "FD Updated: " + fd.ToString(); ClientScript.RegisterStartupScript(Page.GetType(), "alertBoxSuccess", " $('#alertBoxSuccessText').html('<strong>Επιτυχία!</strong> Η συναρτησιακή εξάρτηση επεξεργάστηκε επιτυχώς!'); $('#alertBoxSuccess').show();", true); } else { log.InnerText = "Cannot insert FD: FD already exists.."; ClientScript.RegisterStartupScript(Page.GetType(), "alertBoxFail", " $('#alertBoxFailText').html('<strong>Σφάλμα!</strong> Αδυναμία επεξεργασίας συναρτησιακής εξάρτησης. Η συναρτησιακή εξάρτηση υπάρχει ήδη..'); $('#alertBoxFail').show();", true); } } else { log.InnerText = "You must select an attribute first."; ClientScript.RegisterStartupScript(Page.GetType(), "alertBoxWarning", " $('#alertBoxWarningText').html('<strong>Προσοχή!</strong> Πρέπει να επιλέξετε μια συναρτησιακή εξάρτηση.'); $('#alertBoxWarning').show();", true); return; } }
private void button3_Click(object sender, EventArgs e) { if (FD.ShowDialog() == DialogResult.OK) { if (File.Exists(FD.SelectedPath + "\\bin\\Client.exe")) { textBox1.Text = FD.SelectedPath; StreamWriter sw = new StreamWriter(Program.startup + "\\path.txt", false, Encoding.Unicode); sw.WriteLine(textBox1.Text); sw.Flush(); sw.Close(); } else { MessageBox.Show("Please use proper game installation folder", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
public static void UpdateHistoricalTicks(ThreadControl tc) { tc.Log.AddLine("Starting update historical ticks", Verbosity.Minimal); ZonedDateTime ie = SystemClock.Instance.GetCurrentInstant().InZone(UCDT.TimeZones.Eastern); // set the current date to yesterday via eastern timezone just to be safe DateTime currentDate = new DateTime(ie.Year, ie.Month, ie.Day, 0, 0, 0, DateTimeKind.Utc).AddDays(-335); while (tc.CheckNotStopped()) { FD fd = new FD(currentDate); UpdateHistoricalTicksByDay(Global.State.AllSymbols, fd, false, tc); currentDate = currentDate.AddDays(-1); } }
internal static string map_file(string name, string suffix, ref ulong mapping) { FD fd = GlobalMembersTbcore.open_tb(name, suffix); if (fd == DefineConstants.FD_ERR) { return(null); } #if !_WIN32 stat statbuf = new stat(); fstat(fd, statbuf); mapping = statbuf.st_size; //C++ TO C# CONVERTER TODO TASK: C# does not have an equivalent for pointers to value types: //ORIGINAL LINE: sbyte *data = (sbyte *)mmap(null, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0); sbyte data = (string)mmap(null, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0); if (data == (string)(-1)) { Console.Write("Could not mmap() {0}.\n", name); Environment.Exit(1); } #else uint size_low; uint size_high; size_low = GetFileSize(fd, size_high); // *size = ((uint64)size_high) << 32 | ((uint64)size_low); System.IntPtr map = CreateFileMapping(fd, null, PAGE_READONLY, size_high, size_low, null); if (map == null) { Console.Write("CreateFileMapping() failed.\n"); Environment.Exit(1); } mapping = (ulong)map; //C++ TO C# CONVERTER TODO TASK: C# does not have an equivalent for pointers to value types: //ORIGINAL LINE: sbyte *data = (sbyte *)MapViewOfFile(map, FILE_MAP_READ, 0, 0, 0); sbyte data = (string)MapViewOfFile(map, FILE_MAP_READ, 0, 0, 0); if (data == null) { Console.Write("MapViewOfFile() failed, name = {0}{1}, error = {2:D}.\n", name, suffix, GetLastError()); Environment.Exit(1); } #endif GlobalMembersTbcore.close_tb(fd); return(data); }
private static void writeOutputTxt(string[,] student, double[] studentAvg, string[] studentLetterGrade) { string path = @"output.txt"; // We specify the path of the file that we will read. FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write); // Created a file stream object. StreamWriter sw = new StreamWriter(fs); // Created a StreamWriter object for reading. // Results will be printed to file and console. for (int i = 0; i < numberOfStudents; i++) // Will return as many as the number of students { sw.WriteLine(student[i, 0] + " " + student[i, 1] + " " + student[i, 2] + " - Student Average: " + studentAvg[i] + " - Letter Grade: " + studentLetterGrade[i]); Console.WriteLine(student[i, 0] + " " + student[i, 1] + " " + student[i, 2] + " - Student Average: " + studentAvg[i] + " - Letter Grade: " + studentLetterGrade[i]); } sw.WriteLine("\n- LETTER GRADE STATUS OF THE CLASS -"); sw.WriteLine("AA: " + AA.ToString() + " Person - " + Convert.ToInt32((AA * 100) / numberOfStudents) + "% OF THE CLASS"); sw.WriteLine("BA: " + BA.ToString() + " Person - " + Convert.ToInt32((BA * 100) / numberOfStudents) + "% OF THE CLASS"); sw.WriteLine("BB: " + BB.ToString() + " Person - " + Convert.ToInt32((BB * 100) / numberOfStudents) + "% OF THE CLASS"); sw.WriteLine("CB: " + CB.ToString() + " Person - " + Convert.ToInt32((CB * 100) / numberOfStudents) + "% OF THE CLASS"); sw.WriteLine("CC: " + CC.ToString() + " Person - " + Convert.ToInt32((CC * 100) / numberOfStudents) + "% OF THE CLASS"); sw.WriteLine("DC: " + DC.ToString() + " Person - " + Convert.ToInt32((DC * 100) / numberOfStudents) + "% OF THE CLASS"); sw.WriteLine("DD: " + DD.ToString() + " Person - " + Convert.ToInt32((DD * 100) / numberOfStudents) + "% OF THE CLASS"); sw.WriteLine("FD: " + FD.ToString() + " Person - " + Convert.ToInt32((FD * 100) / numberOfStudents) + "% OF THE CLASS"); sw.WriteLine("FF: " + FF.ToString() + " Person - " + Convert.ToInt32((FF * 100) / numberOfStudents) + "% OF THE CLASS"); Console.WriteLine("\n- LETTER GRADE STATUS OF THE CLASS -"); Console.WriteLine("AA: " + AA.ToString() + " Person - " + Convert.ToInt32((AA * 100) / numberOfStudents) + "% OF THE CLASS"); Console.WriteLine("BA: " + BA.ToString() + " Person - " + Convert.ToInt32((BA * 100) / numberOfStudents) + "% OF THE CLASS"); Console.WriteLine("BB: " + BB.ToString() + " Person - " + Convert.ToInt32((BB * 100) / numberOfStudents) + "% OF THE CLASS"); Console.WriteLine("CB: " + CB.ToString() + " Person - " + Convert.ToInt32((CB * 100) / numberOfStudents) + "% OF THE CLASS"); Console.WriteLine("CC: " + CC.ToString() + " Person - " + Convert.ToInt32((CC * 100) / numberOfStudents) + "% OF THE CLASS"); Console.WriteLine("DC: " + DC.ToString() + " Person - " + Convert.ToInt32((DC * 100) / numberOfStudents) + "% OF THE CLASS"); Console.WriteLine("DD: " + DD.ToString() + " Person - " + Convert.ToInt32((DD * 100) / numberOfStudents) + "% OF THE CLASS"); Console.WriteLine("FD: " + FD.ToString() + " Person - " + Convert.ToInt32((FD * 100) / numberOfStudents) + "% OF THE CLASS"); Console.WriteLine("FF: " + FF.ToString() + " Person - " + Convert.ToInt32((FF * 100) / numberOfStudents) + "% OF THE CLASS"); sw.Flush(); // txt created sw.Close(); // Close file fs.Close(); }
public static MapData SaveMap(List <MetaTileMap> MetaTileMaps, string MapName = "Unknown map name your maps dam it") { var OutMapData = new MapData(); UnserialisedObjectReferences.Clear(); MonoToID.Clear(); FieldsToRefresh.Clear(); IDStatic = 0; IDmatrixStatic = 0; OutMapData.MapName = MapName; foreach (var MetaTileMap in MetaTileMaps) { OutMapData.ContainedMatrices.Add(SaveMatrix(MetaTileMap, false)); } //move outside if multiple matrices foreach (var MFD in UnserialisedObjectReferences) { if (MonoToID.ContainsKey(MFD.Item1)) { MFD.Item2.AddID(MonoToID[MFD.Item1]); MFD.Item2.RemoveRuntimeReference(MFD.Item1); } else { Logger.LogError("Missing money behaviour in MonoToID"); } } UnserialisedObjectReferences.Clear(); MonoToID.Clear(); foreach (var FD in FieldsToRefresh) { FD.Serialise(); } FieldsToRefresh.Clear(); return(OutMapData); }
public static void UpdateSingleDayAndSingleSymbolTicks(string symbol, FD fd, ThreadControl tc) { if (DBMethods.TradesDBExists(symbol) && DBMethods.QuotesDBExists(symbol)) { if (!Global.State.DataTracker.SymbolHasDayData(symbol, fd)) { tc.Log.AddLine("[" + fd.ToString() + "]", Verbosity.Verbose); tc.Log.AddLine("[" + symbol + "] Making trades API calls", Verbosity.Verbose); List <Trade> trades = StockAPI.Methods.GetHistoricTradesFull(symbol, fd.DT.Year, fd.DT.Month, fd.DT.Day); tc.Log.AddLine("[" + symbol + "] Bulk inserting " + trades.Count + " trade(s)", Verbosity.Verbose); int tradesInserted = DBMethods.BulkInsertTrades(trades, symbol); tc.Log.AddLine("[" + symbol + "] Inserted " + tradesInserted + " trade(s)", Verbosity.Normal); tc.Log.AddLine("[" + symbol + "] Making quotes API calls", Verbosity.Verbose); List <Quote> quotes = StockAPI.Methods.GetHistoricQuotesFull(symbol, fd.DT.Year, fd.DT.Month, fd.DT.Day); tc.Log.AddLine("[" + symbol + "] Bulk inserting " + quotes.Count + " quote(s)", Verbosity.Verbose); int quotesInserted = DBMethods.BulkInsertQuotes(quotes, symbol); tc.Log.AddLine("[" + symbol + "] Inserted " + quotesInserted + " quote(s)", Verbosity.Normal); int p = DBMethods.MarkSymbolHasDayData(symbol, fd.DT.Month, fd.DT.Day, fd.DT.Year); tc.Log.AddLine("[" + symbol + "] Marked symbol has data (" + p + ")", Verbosity.Minimal); } else { tc.Log.AddLine("[" + symbol + "] Already has data for this date."); } } else { tc.Log.AddLine("[" + symbol + "] DBs not found"); } }
private void button1_Click(object sender, EventArgs e) { if (FD.ShowDialog() == DialogResult.OK) { var files = System.IO.Directory.GetFiles(FD.SelectedPath, "M_*.png"); Image tmpImg = new Bitmap(150, 150, System.Drawing.Imaging.PixelFormat.Format24bppRgb); using (Graphics tmpG = Graphics.FromImage(tmpImg)) { foreach (var i in files) { var path = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(i), "Output"); if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } using (Image img = Bitmap.FromFile(i)) { Image output = new Bitmap(64, 64, System.Drawing.Imaging.PixelFormat.Format24bppRgb); tmpG.Clear(Color.White); tmpG.DrawImage(img, new Rectangle(7, 7, 136, 136), new RectangleF(0, 16, 136, 136), GraphicsUnit.Pixel); for (int x = 0; x < 3; x++) { for (int y = 0; y < 3; y++) { var oriX = -5 + x * 5 + 27; var oriY = -5 + y * 5 + 27; using (Graphics g = Graphics.FromImage(output)) { g.DrawImage(tmpImg, new Rectangle(0, 0, 64, 64), new RectangleF(oriX, oriY, 96, 96), GraphicsUnit.Pixel); } var filename = $"{ System.IO.Path.GetFileNameWithoutExtension(i)}_{x}_{y}.jpg"; output.Save(System.IO.Path.Combine(path, filename)); } } } } } } }
private void CopyFileClick(object sender, EventArgs e) { var targetPath = outputPath.Text; if (targetPath == "") { if (FD.ShowDialog() != DialogResult.OK) { return; } Properties.Settings.Default["out_path"] = FD.SelectedPath; Properties.Settings.Default.Save(); outputPath.Text = targetPath = FD.SelectedPath; } if (!Directory.Exists(targetPath)) { Directory.CreateDirectory(targetPath); } var files = Directory.GetFiles(_outputPath); if (files.Length == 0) { MessageBox.Show("no file to copy,please generate code first"); return; } foreach (var file in files) { var fileName = Path.GetFileName(file); File.Copy(file, targetPath + "/" + fileName, true); } MessageBox.Show("file copied"); }
internal static FD open_tb(string str, string suffix) { int i; FD fd = new FD(); string file = new string(new char[256]); for (i = 0; i < num_paths; i++) { file = paths[i]; file += "/"; file += str; file += suffix; #if !_WIN32 fd = open(file, O_RDONLY); #else fd = CreateFile(file, GENERIC_READ, FILE_SHARE_READ, null, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, null); #endif if (fd != DefineConstants.FD_ERR) { return(fd); } } return(DefineConstants.FD_ERR); }
void sMonthEnd() { DateTime dt = dtpDate.SelectedDate.Value; DateTime dtFrom = new DateTime(dt.Year, dt.Month, 1); DateTime dtTo = dtFrom.AddMonths(1); int iFeeyear = dt.Year, iFeeMonth = dt.Month; var lstMember = db.MASTERMEMBERNEWs.Where(x => x.DATEOFJOINING < dtTo).ToList(); var lstFees = db.FeesDetails.Where(x => x.FeeYear == dtFrom.Year && x.FeeMonth == dtFrom.Month).ToList(); var lstMemberAndFees = from mm in lstMember join fee in lstFees on mm.MEMBER_CODE equals fee.MemberCode into FD from subfee in FD.DefaultIfEmpty() select new { code = mm.MEMBER_CODE, Member = mm, Fee = subfee }; var lstMemberAndFeesGroupByCode = lstMemberAndFees.GroupBy(x => x.code).ToList(); lblMsg.Content = "0/0"; progressBar1.Minimum = 0; progressBar1.Maximum = lstMemberAndFeesGroupByCode.Count; System.Windows.Forms.Application.DoEvents(); progressBar1.Visibility = Visibility.Visible; List <MasterMemberStatu> lstMasterMemberStatus = new List <MasterMemberStatu>(); int i = 0; foreach (var d in lstMemberAndFeesGroupByCode) { i += 1; progressBar1.Value = i; lblMsg.Content = string.Format("{0}/{1}", progressBar1.Value, progressBar1.Maximum); System.Windows.Forms.Application.DoEvents(); var MM = d.FirstOrDefault().Member; int MonDue = 0; if (MM.RESIGNED && MM.ResignationDate < dtFrom) { continue; } else { MonDue = AppLib.MonthDiff(MM.DATEOFJOINING.Value, dtFrom) - MM.TOTALMONTHSPAID.Value; if (d.Select(x => x.Fee).FirstOrDefault() != null) { var feeAmt = d.Sum(x => x.Fee.TotalAmount == null ? 0 : x.Fee.TotalAmount); if (feeAmt > 0) { MM.LASTPAYMENT_DATE = dtTo.AddDays(-1); MM.TOTALMONTHSPAID += d.Sum(x => x.Fee.TotalMonthsPaid); MM.ACCSUBSCRIPTION += d.Sum(x => x.Fee.AmtSubs); MM.ACCBF += d.Sum(x => x.Fee.AmountBF); } else { MonDue = MonDue + 1; } } else { if (dtFrom.Year == MM.DATEOFJOINING.Value.Year && dtFrom.Month == MM.DATEOFJOINING.Value.Month) { MM.LASTPAYMENT_DATE = MM.DATEOFJOINING; } MonDue = MonDue + 1; } if (MM.REJOINED && MM.ResignationDate <= dtTo) { MM.STATUS_CODE = (int)AppLib.MemberStatus.Resigned; } else { if (MonDue <= 3) { MM.STATUS_CODE = (int)AppLib.MemberStatus.Active; } else if (MM.LASTPAYMENT_DATE != null) { if (AppLib.MonthDiff(MM.LASTPAYMENT_DATE.Value, dtFrom) <= 12) { MM.STATUS_CODE = (int)AppLib.MemberStatus.Defaulter; } else { MM.STATUS_CODE = (int)AppLib.MemberStatus.StruckOff; MM.STRUCKOFF = true; } } //else if (AppLib.MonthDiff(MM.DATEOFJOINING.Value, dtFrom) <= 12) //{ // MM.STATUS_CODE = (int)AppLib.MemberStatus.Defaulter; //} //else //{ // MM.STATUS_CODE = (int)AppLib.MemberStatus.StruckOff; // MM.STRUCKOFF = true; //} } } //db.SaveChanges(); if (d.Select(x => x.Fee).FirstOrDefault() != null) { MasterMemberStatu ss = new MasterMemberStatu() { FeeYear = iFeeyear, FeeMonth = iFeeMonth, MEMBER_CODE = MM.MEMBER_CODE, MEMBERTYPE_CODE = MM.MEMBERTYPE_CODE, BANK_CODE = MM.BANK_CODE, BRANCH_CODE = MM.BRANCH_CODE, NUBE_BRANCH_CODE = 0, SUBSCRIPTION_AMOUNT = MM.MONTHLYSUBSCRIPTION, BF_AMOUNT = MM.MONTHLYBF, LASTPAYMENTDATE = dtTo.AddDays(-1), TOTALSUBCRP_AMOUNT = d.Sum(x => x.Fee.AmtSubs), TOTALBF_AMOUNT = d.Sum(x => x.Fee.AmountBF), TOTAL_MONTHS = d.Sum(x => x.Fee.TotalMonthsPaid), ENTRYMODE = "", DEFAULTINGMONTHS = "", TOTALMONTHSDUE = MonDue, TOTALMONTHSPAID = MM.TOTALMONTHSPAID, SUBSCRIPTIONDUE = 0, BFDUE = 0, ACCSUBSCRIPTION = MM.ACCSUBSCRIPTION, ACCBF = MM.ACCBF, ACCBENEFIT = MM.ACCBENEFIT, CURRENT_YDTBF = MM.CURRENT_YTDBF + d.Sum(x => x.Fee.AmountBF), CURRENT_YDTSUBSCRIPTION = MM.CURRENT_YTDSUBSCRIPTION + d.Sum(x => x.Fee.AmtSubs), STATUS_CODE = MM.STATUS_CODE, RESIGNED = Convert.ToDecimal(MM.RESIGNED), CANCELLED = 0, USER_CODE = 1, ENTRY_DATE = DateTime.Now, ENTRY_TIME = string.Format("{0:hh:mm}", DateTime.Now), STRUCKOFF = MM.STATUS_CODE == 3 ? 1 : 0 }; lstMasterMemberStatus.Add(ss); } else { MasterMemberStatu ss = new MasterMemberStatu() { FeeYear = iFeeyear, FeeMonth = iFeeMonth, MEMBER_CODE = MM.MEMBER_CODE, MEMBERTYPE_CODE = MM.MEMBERTYPE_CODE, BANK_CODE = MM.BANK_CODE, BRANCH_CODE = MM.BRANCH_CODE, NUBE_BRANCH_CODE = 0, SUBSCRIPTION_AMOUNT = MM.MONTHLYSUBSCRIPTION, BF_AMOUNT = MM.MONTHLYBF, LASTPAYMENTDATE = MM.LASTPAYMENT_DATE, TOTALSUBCRP_AMOUNT = 0, TOTALBF_AMOUNT = 0, TOTAL_MONTHS = 0, ENTRYMODE = "", DEFAULTINGMONTHS = "", TOTALMONTHSDUE = MonDue, TOTALMONTHSPAID = MM.TOTALMONTHSPAID, SUBSCRIPTIONDUE = 0, BFDUE = 0, ACCSUBSCRIPTION = MM.ACCSUBSCRIPTION, ACCBF = MM.ACCBF, ACCBENEFIT = MM.ACCBENEFIT, CURRENT_YDTBF = MM.CURRENT_YTDBF, CURRENT_YDTSUBSCRIPTION = MM.CURRENT_YTDSUBSCRIPTION, STATUS_CODE = MM.STATUS_CODE, RESIGNED = Convert.ToDecimal(MM.RESIGNED), CANCELLED = 0, USER_CODE = 1, ENTRY_DATE = DateTime.Now, ENTRY_TIME = string.Format("{0:hh:mm}", DateTime.Now), STRUCKOFF = MM.STATUS_CODE == 3 ? 1 : 0 }; lstMasterMemberStatus.Add(ss); } } db.MasterMemberStatus.AddRange(lstMasterMemberStatus); db.SaveChanges(); MessageBox.Show("Done", "Success"); }
public bool IsSymbolCacheableForDay(string symbol, FD fd) { // this could be a problem if API has an error and it looks like there's no data for that day // should periodically refresh nodatadays and if there are nodatadays that turn out to be data days, delete those day cache files return(NoDataDays.BinarySearch(fd) >= 0 || DataDaysBySymbol[symbol].BinarySearch(fd) >= 0); }
public VR GetVR(string key) { //如果对象存在,则直接从享元池获取 if (VRs.ContainsKey(key)) { return((VR)VRs[key]); } //如果对象不存在,先创建一个新的对象添加到享元池中,然后返回 else { VR fw = null; switch (key) { case "SS": fw = new SS(isBE, false); break; case "US": fw = new US(isBE); break; case "SL": fw = new SL(isBE, false); break; case "UL": fw = new UL(isBE, false); break; case "FL": fw = new FL(isBE, false); break; case "FD": fw = new FD(isBE, false); break; case "DA": fw = new DA(isBE, false); break; case "TM": fw = new TM(isBE, false); break; case "DT": fw = new DT(isBE, false); break; case "AS": fw = new AS(isBE, false); break; case "OB": fw = new OB(isBE); break; case "OF": fw = new OF(isBE, true); break; case "OW": fw = new OW(isBE); break; case "SQ": fw = new SQ(isBE, true); break; case "LO": fw = new LO(isBE, true); break; case "UI": fw = new UI(isBE, true); break; case "SH": fw = new SH(isBE, true); break; case "AE": fw = new AE(isBE, true); break; case "CS": fw = new CS(isBE, true); break; case "PN": fw = new PN(isBE, true); break; case "DS": fw = new DS(isBE); break; case "IS": fw = new IS(isBE, true); break; //default for text //default: fw = new ST(isBE, false); break; } VRs.Add(key, fw); return(fw); } }
/// <summary> /// Μέθοδος στην οποία γίνεται η επιλεγμένη διάσπαση. /// </summary> /// <param name="isPreview">Αν είναι αληθής τότε εμφανίζονται στο modal τα αποτελέσματα.</param> private void DecomposeInSteps(bool isPreview) { int iRel = 0; int iFD = 0; UpdateExcludedFD(); // προσδιορίζεται ο πίνακας που έχει επιλεγεί. Relation rel = null; iRel = Int32.Parse(gridViewRelationHiddenField.Value); rel = relList[iRel]; // αν ο πίνακας που έχει επιλεγεί δεν μπορεί να διασπαστεί περαιτέρω, βγαίνει σχετικό μήνυμα. if (!isPreview && rel.Excluded) { log.InnerText = "Ο πίνακας\n\n" + rel.ToString() + "\n\nέχει αποκλειστεί από περαιτέρω διασπάσεις."; return; } // προσδιορίζεται η συναρτησιακή εξάρτηση που έχει επιλεγεί. FD fd = null; iFD = Int32.Parse(gridViewFDHiddenField.Value); fd = fdList[iFD]; // εξετάζεται αν η συναρτησιακή εξάρτηση είναι τετριμμένη. if (fd.IsTrivial) { log.InnerText = "Η συναρτησιακή εξάρτηση\n\n\"" + fd.ToString() + "\"\n\nείναι τετριμμένη, επομένως δεν χρησιμοποιείται για διάσπαση πινάκων."; return; } //αν το αριστερό σκέλος της συναρτησιακής εξάρτησης περιλαμβάνει κλειδί, τότε δεν χρησιμοποιείται //ο έλεγχος γίνεται με τη βοήθεια της τομής. foreach (Key key in keyList) { if (fd.GetLeft().Intersect(key.GetAttrs(), Global.comparer).Count() >= key.GetAttrs().Count) { log.InnerText = "Η συναρτησιακή εξάρτηση\n\n\"" + fd.ToString() + "\"\n\nπεριλαμβάνει υποψήφιο κλειδί στο αριστερό σκέλος της, επομένως δεν παραβιάζει την BCNF μορφή και δεν χρησιμοποιείται για διάσπαση πινάκων."; return; } } // επίσης ελέγχεται αν η συναρτησιακή εξάρτηση έχει ως ορίζουσα υποψήφιο κλειδί του προς διάσπαση πίνακα. List <Key> tempoRelKey = new List <Key>(); var resultTemp = Global.findKeys(rel.GetList(), fdList, false); tempoRelKey = resultTemp.Item1; foreach (Key key in tempoRelKey) { if (fd.GetLeft().Intersect(key.GetAttrs(), Global.comparer).Count() >= key.GetAttrs().Count) { log.InnerText = "Η συναρτησιακή εξάρτηση\n\n\"" + fd.ToString() + "\"\n\nπεριλαμβάνει υποψήφιο κλειδί του πίνακα " + rel.Name + ", επομένως δεν μπορεί να τον διασπάσει."; return; } } // αν η τομή x του συνόλου των γνωρισμάτων της συναρτησιακής εξάρτησης και των γνωρισμάτων του πίνακα είναι μικρότερη σε αριθμό από το πλήθος των γνωρισμάτων του πίνακα και ίση με το πλήθος των γνωρισμάτων της συναρτησιακής εξάρτησης, τότε παραβιάζεται η BCNF μορφή και ο πίνακας μπορεί να διασπαστεί. int x = fd.GetAll().Intersect(rel.GetList(), Global.comparer).Count(); if (x < rel.GetList().Count&& x == fd.GetAll().Count) { // παρακάτω δημιουργούνται δύο νέοι πίνακες, ο rel1 και ο rel2. // ο rel1 πίνακας παίρνει τα γνωρίσματα της συναρτησιακής εξάρτησης. Relation rel1 = new Relation(fd.GetAll()); // ο rel2 πίνακας παίρνει τα γνωρίσματα από το αριστερό σκέλος της συναρτησιακής εξάρτησης, συν τα γνωρίσματα του πίνακα που διασπάστηκε, πλην αυτών που βρίσκονται στο δεξί σκέλος της συναρτησιακής εξάρτησης. List <Attr> tempo = new List <Attr>(); tempo.AddRange(fd.GetLeft()); tempo.AddRange(rel.GetList().Except(fd.GetRight(), Global.comparer)); Relation rel2 = new Relation(tempo); // δημιουργούνται δύο κλειδιά, ένα για τον καθένα πίνακα. Key key1 = new Key(); Key key2 = new Key(); // το κλειδί του πρώτου πίνακα είναι η ορίζουσα της συναρτησιακής εξάρτησης που προκάλεσε την διάσπαση. key1.AddToKey(fd.GetLeft()); rel1.SetKey(key1); // προσδιορίζουμε το κλειδί του δεύτερου πίνακα (αυτό που δίνει όλα τα γνωρίσματά του) // δημιουργούμε μια τοπική λίστα κλειδιών και ως κλειδί του δεύτερου πίνακα ορίζεται το πρώτο κλειδί της λίστας. List <Key> tempoKeyList = new List <Key>(); var resultTemp2 = Global.findKeys(rel2.GetList(), fdList, false); tempoKeyList = resultTemp2.Item1; key2.AddToKey(tempoKeyList[0].GetAttrs()); rel2.SetKey(key2); // ορίζονται τα ονόματα των δύο νέων πινάκων. if (Relation.isAA) { rel1.Name = "R" + ++Relation.aa; rel2.Name = "R" + ++Relation.aa; if (isPreview) { Relation.aa = Relation.aa - 2; } } else { rel1.Name = rel.Name + "1"; rel2.Name = rel.Name + "2"; } // οι δύο νέοι πίνακες προστίθενται στη λίστα. if (!isPreview) { //προστίθενται οι δύο νέοι πίνακας στο CheckboxList relList.Add(rel1); relList.Add(rel2); //εμφανίζονται τα σχετικά μηνύματα στα Αποτελέσματα. resultsArea.InnerText += "\nΜε την \"" + fd.ToString() + "\" ο " + rel.Name + " διασπάται σε:\n\n" + rel1.ToString() + RelBCNF(rel1) + "\n\n" + rel2.ToString() + RelBCNF(rel2) + "\n\n"; resultsArea.InnerText += "==============================\n\n"; //μπαίνει Χ στα Grid για τον πίνακα rel και τη συναρτησιακή εξάρτηση fd rel.IsBCNF = false; rel.Excluded = true; fdList[iFD].Excluded = true; log.InnerText = "Έγινε διάσπαση σε δύο νέους πίνακες, τον " + rel1.Name + " και τον " + rel2.Name + "."; } else { log.InnerText = "Με την \"" + fd.ToString() + "\" ο " + rel.ToString() + " διασπάται σε:\n\n" + rel1.ToString() + RelBCNF(rel1) + "\n\n" + rel2.ToString() + RelBCNF(rel2) + "\n\n"; log.InnerText += "==============================\n\n"; } } else // σε διαφορετική περίπτωση η BCNF δεν παραβιάζεται και εμφανίζεται σχετικό μήνυμα { log.InnerText = "Η συναρτησιακή εξάρτηση\n\n\"" + fd.ToString() + "\"\n\nδεν σχετίζεται με τον πίνακα\n\n" + rel.ToString() + "\n\nκαι επομένως δεν γίνεται διάσπαση."; } }
public static void UpdateHistoricalTicksByDay(List <string> symbols, FD fd, bool force, ThreadControl tc) { tc.Log.AddLine("Starting update histocial ticks by day", Verbosity.Minimal); ZonedDateTime ie = SystemClock.Instance.GetCurrentInstant().InZone(UCDT.TimeZones.Eastern); // safety precaution if (ie.Year == fd.DT.Year && ie.Month == fd.DT.Month && ie.Day == fd.DT.Day) { throw new Exception("What are you doing???"); } int parallelAPICalls = 15; if (!fd.IsOnWeekend()) { bool hasDataForDay = StockAPI.Methods.DateHasData(fd.DT.Year, fd.DT.Month, fd.DT.Day, force); if (hasDataForDay) { if (force) { tc.Log.AddLine("Forcing a historical update", Verbosity.Verbose); } else { tc.Log.AddLine("Date has data", Verbosity.Verbose); } tc.Log.AddLine("About to start API calls as fast as we can go", Verbosity.Minimal); symbols.Shuffle(); for (int s = 0; s < symbols.Count; s += parallelAPICalls) { //string[] syms = new string[parallelAPICalls]; lock (Global.State.ThreadControlTreeLock) { for (int m = 0; m < parallelAPICalls; m++) { if (m + s < symbols.Count) { string sym = symbols[m + s]; ThreadControl singleQuoteTC = new ThreadControl(fd.ToString() + " : " + sym); tc.Children.Add(singleQuoteTC); Task.Factory.StartNew(() => Methods.ThreadRun("AT.SchedulerMethods, AT", "UpdateSingleDayAndSingleSymbolTicks", singleQuoteTC, null, new object[] { sym, fd }), CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default); } } } while (tc.Children.Exists(p => p.State != ThreadControlState.Complete && p.State != ThreadControlState.Done)) { } tc.ClearChildren(); tc.Log.AddLine("Done with small batch for " + fd.ToString() + ". About %" + Math.Round(((double)s / (double)symbols.Count) * (double)100, 2) + " done."); if (!tc.CheckNotStopped()) { tc.Log.AddLine("Breaking UpdateHistoricalTicksByDay!"); break; } } } else { tc.Log.AddLine("Not forcing and date does NOT have data for " + fd.ToString()); } } else { tc.Log.AddLine("Date is on weekend " + fd.ToString()); } }