protected void dv_DataBound(object sender, EventArgs e) { if (dv.CurrentMode == DetailsViewMode.Edit) { var control = (GRA.SRP.Classes.FileDownloadCtl)dv.FindControl("tc1").FindControl("tp1").FindControl("FileUploadCtl"); if (control != null) { control.ProcessRender(); } var ctl = (DropDownList)dv.FindControl("tc1").FindControl("tp2").FindControl("RegistrationBadgeID"); //this.FindControlRecursive(this, "BranchId"); var lbl = (Label)dv.FindControl("tc1").FindControl("tp2").FindControl("RegistrationBadgeIDLbl"); var i = ctl.Items.FindByValue(lbl.Text); if (i != null) { ctl.SelectedValue = lbl.Text; } ctl = (DropDownList)dv.FindControl("tc1").FindControl("tp2").FindControl("ProgramGameID"); lbl = (Label)dv.FindControl("tc1").FindControl("tp2").FindControl("ProgramGameIDLbl"); i = ctl.Items.FindByValue(lbl.Text); if (i != null) { ctl.SelectedValue = lbl.Text; } ctl = (DropDownList)dv.FindControl("tc1").FindControl("tp5").FindControl("PreTestID"); lbl = (Label)dv.FindControl("tc1").FindControl("tp5").FindControl("PreTestIDLbl"); i = ctl.Items.FindByValue(lbl.Text); if (i != null) { ctl.SelectedValue = lbl.Text; } ctl = (DropDownList)dv.FindControl("tc1").FindControl("tp5").FindControl("PostTestID"); lbl = (Label)dv.FindControl("tc1").FindControl("tp5").FindControl("PostTestIDLbl"); i = ctl.Items.FindByValue(lbl.Text); if (i != null) { ctl.SelectedValue = lbl.Text; } int PK = int.Parse(lblPK.Text); var ds = ProgramCodes.GetProgramStats(PK); lbl = (Label)dv.FindControl("tc1").FindControl("tp6").FindControl("lblTotalCodes"); lbl.Text = FormatHelper.ToInt((int)ds.Tables[0].Rows[0]["TotalCodes"]); lbl = (Label)dv.FindControl("tc1").FindControl("tp6").FindControl("lblUsedCodes"); lbl.Text = FormatHelper.ToInt((int)ds.Tables[0].Rows[0]["UsedCodes"]); lbl = (Label)dv.FindControl("tc1").FindControl("tp6").FindControl("lblRemainingCodes"); lbl.Text = FormatHelper.ToInt((int)ds.Tables[0].Rows[0]["RemainingCodes"]); lbl = (Label)dv.FindControl("tc1").FindControl("tp6").FindControl("lblLastCode"); lbl.Text = (string)ds.Tables[0].Rows[0]["LastUsedCode"]; } }
protected void DvItemCommand(object sender, DetailsViewCommandEventArgs e) { string returnURL = "~/ControlRoom/Modules/Programs/ProgramList.aspx"; if (e.CommandName.ToLower() == "back") { Response.Redirect(returnURL); } if (e.CommandName.ToLower() == "refresh") { try { odsData.DataBind(); dv.DataBind(); dv.ChangeMode(DetailsViewMode.Edit); var masterPage = (IControlRoomMaster)Master; if (masterPage != null) { masterPage.PageMessage = SRPResources.RefreshOK; } } catch (Exception ex) { var masterPage = (IControlRoomMaster)Master; masterPage.PageError = String.Format(SRPResources.ApplicationError1, ex.Message); } } if (e.CommandName.ToLower() == "add" || e.CommandName.ToLower() == "addandback") { try { var obj = new DAL.Programs(); //obj.GenNotificationFlag = ((CheckBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel2").FindControl("GenNotificationFlag")).Checked; obj.AdminName = ((TextBox)((DetailsView)sender).FindControl("AdminName")).Text; obj.Title = ((TextBox)((DetailsView)sender).FindControl("Title")).Text; obj.TabName = ((TextBox)((DetailsView)sender).FindControl("TabName")).Text; //obj.POrder = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("POrder")).Text); obj.IsActive = ((CheckBox)((DetailsView)sender).FindControl("IsActive")).Checked; obj.IsHidden = ((CheckBox)((DetailsView)sender).FindControl("IsHidden")).Checked; obj.StartDate = FormatHelper.SafeToDateTime(((TextBox)((DetailsView)sender).FindControl("StartDate")).Text); obj.EndDate = FormatHelper.SafeToDateTime(((TextBox)((DetailsView)sender).FindControl("EndDate")).Text); //obj.MaxAge = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("MaxAge")).Text); //obj.MaxGrade = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("MaxGrade")).Text); obj.LoggingStart = FormatHelper.SafeToDateTime(((TextBox)((DetailsView)sender).FindControl("LoggingStart")).Text); obj.LoggingEnd = FormatHelper.SafeToDateTime(((TextBox)((DetailsView)sender).FindControl("LoggingEnd")).Text); obj.CompletionPoints = 0; //obj.ParentalConsentFlag = ((CheckBox)((DetailsView)sender).FindControl("ParentalConsentFlag")).Checked; //obj.ParentalConsentText = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("ParentalConsentText")).Text; //obj.PatronReviewFlag = ((CheckBox)((DetailsView)sender).FindControl("PatronReviewFlag")).Checked; //obj.LogoutURL = ((TextBox)((DetailsView)sender).FindControl("LogoutURL")).Text; //obj.ProgramGameID = FormatHelper.SafeToInt(((DropDownList) ((DetailsView) sender).FindControl("ProgramGameID")).SelectedValue); //obj.HTML1 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("HTML1")).Text; //obj.HTML2 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("HTML2")).Text; //obj.HTML3 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("HTML3")).Text; //obj.HTML4 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("HTML4")).Text; //obj.HTML5 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("HTML5")).Text; //obj.HTML6 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("HTML6")).Text; //obj.BannerImage = ((TextBox)((DetailsView)sender).FindControl("BannerImage")).Text; //obj.RegistrationBadgeID = FormatHelper.SafeToInt(((DropDownList) ((DetailsView) sender).FindControl("RegistrationBadgeID")).SelectedValue); obj.AddedDate = DateTime.Now; obj.AddedUser = ((SRPUser)Session[SessionData.UserProfile.ToString()]).Username; //"N/A"; // Get from session obj.LastModDate = obj.AddedDate; obj.LastModUser = obj.AddedUser; if (obj.IsValid(BusinessRulesValidationMode.INSERT)) { obj.Insert(); File.Copy(Server.MapPath("~/css/program/default.css"), Server.MapPath("~/css/program/" + obj.PID.ToString() + ".css"), true); File.Copy(Server.MapPath("~/images/banners/default.png"), Server.MapPath("~/images/banners/" + obj.PID.ToString() + ".png"), true); File.Copy(Server.MapPath("~/resources/program.default.en-US.txt"), Server.MapPath("~/resources/program." + obj.PID.ToString() + ".en-US.txt"), true); //CompileResourceFile(Server.MapPath("~/resources/program." + obj.PID.ToString() + ".en-US.txt")); foreach (ActivityType val in Enum.GetValues(typeof(ActivityType))) { var o = new ProgramGamePointConversion(); o.PGID = obj.PID; o.ActivityTypeId = (int)val; o.ActivityCount = 1; o.PointCount = 0; o.AddedDate = obj.AddedDate; o.AddedUser = obj.AddedUser; o.LastModDate = o.AddedDate; o.LastModUser = o.AddedUser; o.Insert(); } if (e.CommandName.ToLower() == "addandback") { Response.Redirect(returnURL); } lblPK.Text = obj.PID.ToString(); odsData.DataBind(); dv.DataBind(); dv.ChangeMode(DetailsViewMode.Edit); var masterPage = (IControlRoomMaster)Master; masterPage.PageMessage = SRPResources.AddedOK; } else { var masterPage = (IControlRoomMaster)Master; string message = String.Format(SRPResources.ApplicationError1, "<ul>"); foreach (BusinessRulesValidationMessage m in obj.ErrorCodes) { message = string.Format(String.Format("{0}<li>{{0}}</li>", message), m.ErrorMessage); } message = string.Format("{0}</ul>", message); masterPage.PageError = message; } } catch (Exception ex) { var masterPage = (IControlRoomMaster)Master; masterPage.PageError = String.Format(SRPResources.ApplicationError1, ex.Message); } } if (e.CommandName.ToLower() == "save" || e.CommandName.ToLower() == "saveandback") { try { var obj = new DAL.Programs(); int pk = int.Parse(((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("PID")).Text); obj.Fetch(pk); obj.AdminName = ((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("AdminName")).Text; obj.Title = ((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("Title")).Text; obj.TabName = ((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("TabName")).Text; //obj.POrder = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("POrder")).Text); obj.IsActive = ((CheckBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("IsActive")).Checked; obj.IsHidden = ((CheckBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("IsHidden")).Checked; obj.StartDate = FormatHelper.SafeToDateTime(((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("StartDate")).Text); obj.EndDate = FormatHelper.SafeToDateTime(((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("EndDate")).Text); obj.MaxAge = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("MaxAge")).Text); obj.MaxGrade = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("MaxGrade")).Text); obj.LoggingStart = FormatHelper.SafeToDateTime(((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("LoggingStart")).Text); obj.LoggingEnd = FormatHelper.SafeToDateTime(((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("LoggingEnd")).Text); obj.ParentalConsentFlag = ((CheckBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("ParentalConsentFlag")).Checked; obj.ParentalConsentText = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("ParentalConsentText")).Text; obj.PatronReviewFlag = ((CheckBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("PatronReviewFlag")).Checked; obj.LogoutURL = ((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel1").FindControl("LogoutURL")).Text; obj.CompletionPoints = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel2").FindControl("CompletionPoints")).Text); obj.ProgramGameID = FormatHelper.SafeToInt(((DropDownList)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel2").FindControl("ProgramGameID")).Text); //obj.ProgramGameID = 0; obj.RegistrationBadgeID = FormatHelper.SafeToInt(((DropDownList)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel2").FindControl("RegistrationBadgeID")).Text); //obj.RegistrationBadgeID = 0; obj.HTML1 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel2").FindControl("HTML1")).Text; obj.HTML2 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel2").FindControl("HTML2")).Text; obj.HTML3 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel3").FindControl("HTML3")).Text; obj.HTML4 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel3").FindControl("HTML4")).Text; obj.HTML5 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel4").FindControl("HTML5")).Text; obj.HTML6 = ((CKEditor.NET.CKEditorControl)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel4").FindControl("HTML6")).Text; obj.BannerImage = "";//((TextBox)((DetailsView)sender).FindControl("BannerImage")).Text; obj.LastModDate = DateTime.Now; obj.LastModUser = ((SRPUser)Session[SessionData.UserProfile.ToString()]).Username; //"N/A"; // Get from session if (obj.IsValid(BusinessRulesValidationMode.UPDATE)) { obj.Update(); var rptr = ((Repeater)((DetailsView)sender).FindControl("TabContainer1").FindControl("TabPanel5").FindControl("rptr")); if (rptr != null) { foreach (RepeaterItem item in rptr.Items) { var PGCID = int.Parse(((TextBox)item.FindControl("PGCID")).Text); var ActivityCountTxt = ((TextBox)item.FindControl("ActivityCount")).Text; var PointCountTxt = ((TextBox)item.FindControl("PointCount")).Text; int ActivityCount = 1, PointCount = 0; int.TryParse(ActivityCountTxt, out ActivityCount); int.TryParse(PointCountTxt, out PointCount); var o = ProgramGamePointConversion.FetchObject(PGCID); if (o == null) { continue; } o.ActivityCount = ActivityCount; o.PointCount = PointCount; o.LastModDate = obj.LastModDate; o.LastModUser = obj.LastModUser; o.Update(); } } if (e.CommandName.ToLower() == "saveandback") { Response.Redirect(returnURL); } odsData.DataBind(); dv.DataBind(); dv.ChangeMode(DetailsViewMode.Edit); var masterPage = (IControlRoomMaster)Master; masterPage.PageMessage = SRPResources.SaveOK; } else { var masterPage = (IControlRoomMaster)Master; string message = String.Format(SRPResources.ApplicationError1, "<ul>"); foreach (BusinessRulesValidationMessage m in obj.ErrorCodes) { message = string.Format(String.Format("{0}<li>{{0}}</li>", message), m.ErrorMessage); } message = string.Format("{0}</ul>", message); masterPage.PageError = message; } } catch (Exception ex) { var masterPage = (IControlRoomMaster)Master; masterPage.PageError = String.Format(SRPResources.ApplicationError1, ex.Message); } } if (e.CommandName.ToLower() == "gen") { int PK = int.Parse(lblPK.Text); var ds = ProgramCodes.GetProgramStats(PK); int TotalCodes = (int)ds.Tables[0].Rows[0]["TotalCodes"]; var txt = (TextBox)dv.FindControl("TabContainer1").FindControl("TabPanel6").FindControl("txtGen"); int addl = int.Parse(txt.Text); ProgramCodes.Generate(TotalCodes + 1, TotalCodes + addl, PK); odsData.DataBind(); dv.DataBind(); dv.ChangeMode(DetailsViewMode.Edit); var masterPage = (IControlRoomMaster)Master; masterPage.PageMessage = "Additional codes generated!"; } if (e.CommandName.ToLower() == "exp") { int PK = int.Parse(lblPK.Text); var ds = ProgramCodes.GetExportList(PK); string excelFilename = Server.MapPath("~/ProgramRewardCodes.xlsx"); CreateExcelFile.CreateExcelDocument(ds, excelFilename); Response.ContentType = "application/vnd.ms-excel"; Response.AppendHeader("Content-Disposition", "attachment; filename=ProgramRewardCodes.xlsx"); EnableViewState = false; Response.BinaryWrite(File.ReadAllBytes(excelFilename)); File.Delete(excelFilename); Response.End(); var masterPage = (IControlRoomMaster)Master; masterPage.PageMessage = "Codes Exported!"; } }
public byte[] ToCurrentFormat() { //Update if Unit changed UpdateCustomUnits(); var bytes = new List <byte>(); bytes.AddRange(Signature.ToBytes(2)); bytes.Add((byte)Version); //'for' instead 'foreach' for upgrade support for (var i = 0; i < InputPoint.GetCount(FileVersion); ++i) { var obj = Inputs.ElementAtOrDefault(i) ?? new InputPoint(); obj.FileVersion = FileVersion; bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < OutputPoint.GetCount(FileVersion); ++i) { var obj = Outputs.ElementAtOrDefault(i) ?? new OutputPoint(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < VariablePoint.GetCount(FileVersion); ++i) { var obj = Variables.ElementAtOrDefault(i) ?? new VariablePoint(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < ProgramPoint.GetCount(FileVersion); ++i) { var obj = Programs.ElementAtOrDefault(i) ?? new ProgramPoint(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < ControllerPoint.GetCount(FileVersion); ++i) { var obj = Controllers.ElementAtOrDefault(i) ?? new ControllerPoint(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < ScreenPoint.GetCount(FileVersion); ++i) { var obj = Screens.ElementAtOrDefault(i) ?? new ScreenPoint(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < GraphicPoint.GetCount(FileVersion); ++i) { var obj = Graphics.ElementAtOrDefault(i) ?? new GraphicPoint(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < UserPoint.GetCount(FileVersion); ++i) { var obj = Users.ElementAtOrDefault(i) ?? new UserPoint(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < CustomDigitalUnitsPoint.GetCount(FileVersion); ++i) { var obj = CustomUnits.Digital.ElementAtOrDefault(i) ?? new CustomDigitalUnitsPoint(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < TablePoint.GetCount(FileVersion); ++i) { var obj = Tables.ElementAtOrDefault(i) ?? new TablePoint(); bytes.AddRange(obj.ToBytes()); } { var settings = Settings ?? new Settings(FileVersion); bytes.AddRange(settings.ToBytes()); } for (var i = 0; i < SchedulePoint.GetCount(FileVersion); ++i) { var obj = Schedules.ElementAtOrDefault(i) ?? new SchedulePoint(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < HolidayPoint.GetCount(FileVersion); ++i) { var obj = Holidays.ElementAtOrDefault(i) ?? new HolidayPoint(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < MonitorPoint.GetCount(FileVersion); ++i) { var obj = Monitors.ElementAtOrDefault(i) ?? new MonitorPoint(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < ScheduleCode.GetCount(FileVersion); ++i) { var obj = ScheduleCodes.ElementAtOrDefault(i) ?? new ScheduleCode(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < HolidayCode.GetCount(FileVersion); ++i) { var obj = HolidayCodes.ElementAtOrDefault(i) ?? new HolidayCode(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < ProgramCode.GetCount(FileVersion); ++i) { var obj = ProgramCodes.ElementAtOrDefault(i) ?? new ProgramCode(); bytes.AddRange(obj.ToBytes()); } for (var i = 0; i < CustomAnalogUnitsPoint.GetCount(FileVersion); ++i) { var obj = CustomUnits.Analog.ElementAtOrDefault(i) ?? new CustomAnalogUnitsPoint(); bytes.AddRange(obj.ToBytes()); } if (!IsUpgraded) { CheckSize(bytes.Count, Length); } return(bytes.ToArray()); }
private void FromCurrentFormat(byte[] bytes, int offset = 0) { Signature = bytes.GetString(0, 2); Version = bytes.ToByte(2); Length = bytes.Length; offset += 3; int parts = 1; this.parentClass?.PassMessage(parts, $"PRG Header 1 - Offset {offset}"); //Get all inputs Inputs.AddRange(GetArray(bytes, InputPoint.GetCount(FileVersion), InputPoint.GetSize(FileVersion), ref offset) .Select(i => new InputPoint(i, 0, FileVersion))); parts += Inputs.Count; this.parentClass?.PassMessage(parts, $"InputPoints {Inputs.Count} - Offset {offset}"); //Get all outputs Outputs.AddRange(GetArray(bytes, OutputPoint.GetCount(FileVersion), OutputPoint.GetSize(FileVersion), ref offset) .Select(i => new OutputPoint(i, 0, FileVersion))); parts += Outputs.Count; this.parentClass?.PassMessage(parts, $"OutputPoints {Outputs.Count} - Offset {offset}"); //Get all variables Variables.AddRange(GetArray(bytes, VariablePoint.GetCount(FileVersion), VariablePoint.GetSize(FileVersion), ref offset) .Select(i => new VariablePoint(i, 0, FileVersion))); parts += Variables.Count; this.parentClass?.PassMessage(parts, $"VariablePoints {Variables.Count} - Offset {offset}"); //Get all programs Programs.AddRange(GetArray(bytes, ProgramPoint.GetCount(FileVersion), ProgramPoint.GetSize(FileVersion), ref offset) .Select(i => new ProgramPoint(i, 0, FileVersion))); parts += Programs.Count; this.parentClass?.PassMessage(parts, $"ProgramPoints {Programs.Count} - Offset {offset}"); //Get all controllers Controllers.AddRange(GetArray(bytes, ControllerPoint.GetCount(FileVersion), ControllerPoint.GetSize(FileVersion), ref offset) .Select(i => new ControllerPoint(i, 0, FileVersion))); parts += Controllers.Count; this.parentClass?.PassMessage(parts, $"ControllerPoints {Controllers.Count} - Offset {offset}"); //Get all screens Screens.AddRange(GetArray(bytes, ScreenPoint.GetCount(FileVersion), ScreenPoint.GetSize(FileVersion), ref offset) .Select(i => new ScreenPoint(i, 0, FileVersion))); parts += Screens.Count; this.parentClass?.PassMessage(parts, $"ScreenPoints {Screens.Count} - Offset {offset}"); //Get all graphics //TODO: NOT MINE: Constants to object static Size(FileVersion) Count(FileVersion) Graphics.AddRange(GetArray(bytes, GraphicPoint.GetCount(FileVersion), GraphicPoint.GetSize(FileVersion), ref offset) .Select(i => new GraphicPoint(i, 0, FileVersion))); parts += Graphics.Count; this.parentClass?.PassMessage(parts, $"GraphicPoints {Graphics.Count} - Offset {offset}"); Users.AddRange(GetArray(bytes, UserPoint.GetCount(FileVersion), UserPoint.GetSize(FileVersion), ref offset) .Select(i => new UserPoint(i, 0, FileVersion))); parts += Users.Count; this.parentClass?.PassMessage(parts, $"UserPoints {Users.Count} - Offset {offset}"); CustomUnits.Digital.AddRange(GetArray(bytes, CustomDigitalUnitsPoint.GetCount(FileVersion), CustomDigitalUnitsPoint.GetSize(FileVersion), ref offset) .Select(i => new CustomDigitalUnitsPoint(i, 0, FileVersion))); parts += CustomUnits.Digital.Count; this.parentClass?.PassMessage(parts, $"CustomUnits.DigitalPoints {CustomUnits.Digital.Count} - Offset {offset}"); Tables.AddRange(GetArray(bytes, TablePoint.GetCount(FileVersion), TablePoint.GetSize(FileVersion), ref offset) .Select(i => new TablePoint(i, 0, FileVersion))); parts += Tables.Count; this.parentClass?.PassMessage(parts, $"TablePoints {Tables.Count} - Offset {offset}"); Settings = new Settings( GetObject(bytes, Settings.GetSize(FileVersion), ref offset), 0, FileVersion); parts += 1; this.parentClass?.PassMessage(parts, $"Settings 1 - Offset {offset}"); Schedules.AddRange(GetArray(bytes, SchedulePoint.GetCount(FileVersion), SchedulePoint.GetSize(FileVersion), ref offset) .Select(i => new SchedulePoint(i, 0, FileVersion))); parts += Schedules.Count; this.parentClass?.PassMessage(parts, $"SchedulePoints {Schedules.Count} - Offset {offset}"); Holidays.AddRange(GetArray(bytes, HolidayPoint.GetCount(FileVersion), HolidayPoint.GetSize(FileVersion), ref offset) .Select(i => new HolidayPoint(i, 0, FileVersion))); parts += Holidays.Count; this.parentClass?.PassMessage(parts, $"HolidayPoints {Holidays.Count} - Offset {offset}"); Monitors.AddRange(GetArray(bytes, MonitorPoint.GetCount(FileVersion), MonitorPoint.GetSize(FileVersion), ref offset) .Select(i => new MonitorPoint(i, 0, FileVersion))); parts += Monitors.Count; this.parentClass?.PassMessage(parts, $"MonitorPoints {Monitors.Count} - Offset {offset}"); ScheduleCodes.AddRange(GetArray(bytes, ScheduleCode.GetCount(FileVersion), ScheduleCode.GetSize(FileVersion), ref offset) .Select(i => new ScheduleCode(i, 0, FileVersion))); parts += ScheduleCodes.Count; this.parentClass?.PassMessage(parts, $"ScheduleCodes {ScheduleCodes.Count} - Offset {offset}"); HolidayCodes.AddRange(GetArray(bytes, HolidayCode.GetCount(FileVersion), HolidayCode.GetSize(FileVersion), ref offset) .Select(i => new HolidayCode(i, 0, FileVersion))); parts += HolidayCodes.Count; this.parentClass?.PassMessage(parts, $"HolidayCodes {HolidayCodes.Count} - Offset {offset}"); int pcode_offset = offset; var ProgramCodeBytes = bytes.ToBytes(offset, ProgramCode.GetSize(FileVersion)); ProgramCodes.AddRange(GetArray(bytes, ProgramCode.GetCount(FileVersion), ProgramCode.GetSize(FileVersion), ref offset) //.Select(i => new ProgramCode(i, this, 0, FileVersion))); .Select(i => new ProgramCode())); ProgramCodes[0] = new ProgramCode(ProgramCodeBytes, this, 0, FileVersion); parts += 1; this.parentClass?.PassMessage(parts, $"ProgramCodes 1 - Offset {pcode_offset+2000}"); for (int i = 1; i < ProgramCode.GetCount(FileVersion); i++) { pcode_offset += ProgramCode.GetSize(FileVersion); ProgramCodeBytes = bytes.ToBytes(pcode_offset, ProgramCode.GetSize(FileVersion)); ProgramCodes[i] = new ProgramCode(ProgramCodeBytes, this, 0, FileVersion); parts += 1; this.parentClass?.PassMessage(parts, $"ProgramCodes {i+1} - Offset {pcode_offset+2000}"); //Debug.WriteLine($"Leído ProgramCode[{i}]"); } CustomUnits.Analog.AddRange(GetArray(bytes, CustomAnalogUnitsPoint.GetCount(FileVersion), CustomAnalogUnitsPoint.GetSize(FileVersion), ref offset) .Select(i => new CustomAnalogUnitsPoint(i, 0, FileVersion))); parts += CustomUnits.Analog.Count; this.parentClass?.PassMessage(parts, $"CustomUnits.AnalogPoints {CustomUnits.Analog.Count} - Offset {offset}"); CheckOffset(offset, Length); UpdateCustomUnits(); }
private void FromCurrentFormat(byte[] bytes, int offset = 0) { Signature = bytes.GetString(0, 2); Version = bytes.ToByte(2); Length = bytes.Length; offset += 3; //Get all inputs Inputs.AddRange(GetArray(bytes, InputPoint.GetCount(FileVersion), InputPoint.GetSize(FileVersion), ref offset) .Select(i => new InputPoint(i, 0, FileVersion))); //Get all outputs Outputs.AddRange(GetArray(bytes, OutputPoint.GetCount(FileVersion), OutputPoint.GetSize(FileVersion), ref offset) .Select(i => new OutputPoint(i, 0, FileVersion))); //Get all variables Variables.AddRange(GetArray(bytes, VariablePoint.GetCount(FileVersion), VariablePoint.GetSize(FileVersion), ref offset) .Select(i => new VariablePoint(i, 0, FileVersion))); //Get all programs Programs.AddRange(GetArray(bytes, ProgramPoint.GetCount(FileVersion), ProgramPoint.GetSize(FileVersion), ref offset) .Select(i => new ProgramPoint(i, 0, FileVersion))); //Get all controllers Controllers.AddRange(GetArray(bytes, ControllerPoint.GetCount(FileVersion), ControllerPoint.GetSize(FileVersion), ref offset) .Select(i => new ControllerPoint(i, 0, FileVersion))); //Get all screens Screens.AddRange(GetArray(bytes, ScreenPoint.GetCount(FileVersion), ScreenPoint.GetSize(FileVersion), ref offset) .Select(i => new ScreenPoint(i, 0, FileVersion))); //Get all graphics //TODO: Constants to object static Size(FileVersion) Count(FileVersion) Graphics.AddRange(GetArray(bytes, GraphicPoint.GetCount(FileVersion), GraphicPoint.GetSize(FileVersion), ref offset) .Select(i => new GraphicPoint(i, 0, FileVersion))); Users.AddRange(GetArray(bytes, UserPoint.GetCount(FileVersion), UserPoint.GetSize(FileVersion), ref offset) .Select(i => new UserPoint(i, 0, FileVersion))); CustomUnits.Digital.AddRange(GetArray(bytes, CustomDigitalUnitsPoint.GetCount(FileVersion), CustomDigitalUnitsPoint.GetSize(FileVersion), ref offset) .Select(i => new CustomDigitalUnitsPoint(i, 0, FileVersion))); Tables.AddRange(GetArray(bytes, TablePoint.GetCount(FileVersion), TablePoint.GetSize(FileVersion), ref offset) .Select(i => new TablePoint(i, 0, FileVersion))); Settings = new Settings( GetObject(bytes, Settings.GetSize(FileVersion), ref offset), 0, FileVersion); Schedules.AddRange(GetArray(bytes, SchedulePoint.GetCount(FileVersion), SchedulePoint.GetSize(FileVersion), ref offset) .Select(i => new SchedulePoint(i, 0, FileVersion))); Holidays.AddRange(GetArray(bytes, HolidayPoint.GetCount(FileVersion), HolidayPoint.GetSize(FileVersion), ref offset) .Select(i => new HolidayPoint(i, 0, FileVersion))); Monitors.AddRange(GetArray(bytes, MonitorPoint.GetCount(FileVersion), MonitorPoint.GetSize(FileVersion), ref offset) .Select(i => new MonitorPoint(i, 0, FileVersion))); ScheduleCodes.AddRange(GetArray(bytes, ScheduleCode.GetCount(FileVersion), ScheduleCode.GetSize(FileVersion), ref offset) .Select(i => new ScheduleCode(i, 0, FileVersion))); HolidayCodes.AddRange(GetArray(bytes, HolidayCode.GetCount(FileVersion), HolidayCode.GetSize(FileVersion), ref offset) .Select(i => new HolidayCode(i, 0, FileVersion))); int pcode_offset = offset; var ProgramCodeBytes = bytes.ToBytes(offset, ProgramCode.GetSize(FileVersion)); ProgramCodes.AddRange(GetArray(bytes, ProgramCode.GetCount(FileVersion), ProgramCode.GetSize(FileVersion), ref offset) //.Select(i => new ProgramCode(i, this, 0, FileVersion))); .Select(i => new ProgramCode())); ProgramCodes[0] = new ProgramCode(ProgramCodeBytes, this, 0, FileVersion); for (int i = 1; i < ProgramCode.GetCount(FileVersion); i++) { pcode_offset += ProgramCode.GetSize(FileVersion); ProgramCodeBytes = bytes.ToBytes(pcode_offset, ProgramCode.GetSize(FileVersion)); ProgramCodes[i] = new ProgramCode(ProgramCodeBytes, this, 0, FileVersion); Debug.WriteLine($"Leído ProgramCode[{i}]"); } CustomUnits.Analog.AddRange(GetArray(bytes, CustomAnalogUnitsPoint.GetCount(FileVersion), CustomAnalogUnitsPoint.GetSize(FileVersion), ref offset) .Select(i => new CustomAnalogUnitsPoint(i, 0, FileVersion))); CheckOffset(offset, Length); UpdateCustomUnits(); }
public static bool AwardBadgeToPatron(int badgeToAward, Patron patron, ref List <Badge> earnedBadges) { var now = DateTime.Now; // check if badge was already earned... var pbds = PatronBadges.GetAll(patron.PID); var a = pbds.Tables[0].AsEnumerable().Where(r => r.Field <int>("BadgeID") == badgeToAward); var newTable = new DataTable(); try { newTable = a.CopyToDataTable(); } catch { } // badge not found, award it! if (newTable.Rows.Count == 0) { var pb = new PatronBadges { BadgeID = badgeToAward, DateEarned = now, PID = patron.PID }; pb.Insert(); var earnedBadge = Badge.GetBadge(badgeToAward); if (earnedBadge != null) { earnedBadges.Add(earnedBadge); //if badge generates notification, then generate the notification if (earnedBadge.GenNotificationFlag) { var not = new Notifications { PID_To = patron.PID, PID_From = 0, //0 == System Notification Subject = earnedBadge.NotificationSubject, Body = earnedBadge.NotificationBody, isQuestion = false, AddedDate = now, LastModDate = now, AddedUser = patron.Username, LastModUser = "******" }; not.Insert(); } //if badge generates prize, then generate the prize if (earnedBadge.IncludesPhysicalPrizeFlag) { var ppp = new DAL.PatronPrizes { PID = patron.PID, PrizeSource = 1, BadgeID = badgeToAward, PrizeName = earnedBadge.PhysicalPrizeName, RedeemedFlag = false, AddedUser = patron.Username, LastModUser = "******", AddedDate = now, LastModDate = now }; ppp.Insert(); } // if badge generates award code, then generate the code if (earnedBadge.AssignProgramPrizeCode) { var rewardCode = string.Empty; // get the Code value // save the code value for the patron rewardCode = ProgramCodes.AssignCodeForPatron(patron.ProgID, patron.ProgID); // generate the notification var not = new Notifications { PID_To = patron.PID, PID_From = 0, //0 == System Notification Subject = earnedBadge.PCNotificationSubject, Body = earnedBadge.PCNotificationBody.Replace("{ProgramRewardCode}", rewardCode), isQuestion = false, AddedDate = now, LastModDate = now, AddedUser = patron.Username, LastModUser = "******" }; not.Insert(); } } return(true); } else { return(false); } }