public void VerInformacionCurso(object sender, EventArgs e) { LinkButton hiperEnlace = (LinkButton)sender; GridViewRow filaAEncontrar = null; foreach (GridViewRow fila in tablaCursos.Rows) { if (fila.Cells[1].Controls.Contains(hiperEnlace)) { filaAEncontrar = fila; break; } } DataKeyArray arreglo = tablaCursos.DataKeys; int idCurso = Int32.Parse(tablaCursos.DataKeys[filaAEncontrar.RowIndex].Value.ToString()); GestionCurso gestorCursos = new GestionCurso(); ECurso curso = gestorCursos.GetCurso(idCurso); Session[Constantes.CURSO_SELECCIONADO] = curso; Response.Redirect("~/Vistas/Cursos/InformacionDelCurso.aspx"); }
public void DataKeyArray_DefaultProperty() { DataKeyArray keyarray = new DataKeyArray(new ArrayList()); Assert.AreEqual(0, keyarray.Count, "Count"); Assert.AreEqual(false, keyarray.IsReadOnly, "IsReadOnly"); Assert.AreEqual(false, keyarray.IsSynchronized, "IsSynchronized"); //Assert.AreEqual (keyarray, keyarray.SyncRoot, "SyncRoot"); }
public void DataKeyArray_GetEnumerator() { OrderedDictionary dictionary = new OrderedDictionary(); dictionary.Add("key", "value"); ArrayList list = new ArrayList(); DataKey key = new DataKey(dictionary); list.Add(key); DataKeyArray keyarray = new DataKeyArray(list); IEnumerator inumerator = keyarray.GetEnumerator(); Assert.IsNotNull(inumerator, "GetEnumerator"); }
public static int IndexOf(this DataKeyArray dataKeyArray, object value) { if (dataKeyArray.Count < 1) { throw new InvalidOperationException("DataKeyArray contains no elements."); } var keys = dataKeyArray.Cast <DataKey>().ToList(); var key = keys.SingleOrDefault(k => k.Value.Equals(value)); if (key == null) { return(-1); } return(keys.IndexOf(key)); }
public void DataKeyArray_CopyTo() { OrderedDictionary dictionary = new OrderedDictionary(); dictionary.Add("key", "value"); ArrayList list = new ArrayList(); DataKey key = new DataKey(dictionary); list.Add(key); DataKeyArray keyarray = new DataKeyArray(list); DataKey[] keys = new DataKey[list.Count]; keyarray.CopyTo(keys, 0); Assert.AreEqual("value", keys[0].Value, "CopyToValue"); }
public void DataKeyArray_Item() { OrderedDictionary dictionary = new OrderedDictionary(); dictionary.Add("key", "value"); ArrayList list = new ArrayList(); DataKey key = new DataKey(dictionary); list.Add(key); DataKeyArray keyarray = new DataKeyArray(list); Assert.AreEqual(1, keyarray.Count, "CreateItems"); Assert.AreEqual(key, keyarray[0], "CreateKeyData"); Assert.AreEqual("value", ((DataKey)keyarray[0]).Value, "KeyArrayValue"); dictionary.Add("key1", "value1"); key = new DataKey(dictionary); list.Add(key); keyarray = new DataKeyArray(list); Assert.AreEqual(2, keyarray.Count, "CreateItemsMulty"); }
protected void ButtonRangMoinsUn_Click(object sender, EventArgs e) { int indexRow = 0; DataKeyArray dka = GridView1.DataKeys; foreach (GridViewRow r in GridView1.Rows) { CheckBox cb = ( CheckBox )GridView1.Rows[indexRow].FindControl("CheckBoxRangPlusMoinsUn"); Guid reponseGuid = new Guid(dka[indexRow].Value.ToString()); if (cb.Checked) { PollAnswer reponse = Reponses.FindByPollAnswerID(reponseGuid); reponse.Rank -= 1; PollAnswer.Update(reponse); } indexRow += 1; } GridView1.DataBind(); }
protected void ButtonRangMoinsUn_Click(object sender, EventArgs e) { int indexRow = 0; DataKeyArray dka = GridViewQuestion.DataKeys; foreach (GridViewRow r in GridViewQuestion.Rows) { CheckBox cb = ( CheckBox )GridViewQuestion.Rows[indexRow].FindControl("CheckBoxRangPlusMoinsUn"); Guid questionGuid = new Guid(dka[indexRow].Value.ToString()); if (cb.Checked) { PollQuestion question = PollQuestion.GetQuestion(questionGuid); question.Rank -= 1; PollQuestion.UpdateRank(question); } indexRow += 1; } //Response.Redirect( Request.RawUrl ); surtout pas ici !! HiddenFieldQuestionnaireID.Value = SessionState.Questionnaire.QuestionnaireID.ToString(); GridViewQuestion.DataBind(); BuildDataList(); }
/// <summary> /// Creates the labels. /// </summary> /// <param name="checkinArray">The checkin array.</param> private void ProcessLabels(DataKeyArray checkinArray) { if (checkinArray.Count == 0) { return; } // All family members need attendance now so they also get the same code if (RunSaveAttendance) { var attendanceErrors = new List <string>(); if (ProcessActivity("Save Attendance", out attendanceErrors)) { SaveState(); } else { string errorMsg = "<ul><li>" + attendanceErrors.AsDelimited("</li><li>") + "</li></ul>"; maAlert.Show(errorMsg, Rock.Web.UI.Controls.ModalAlertType.Warning); return; } RunSaveAttendance = false; } var printQueue = new Dictionary <string, StringBuilder>(); bool printIndividually = GetAttributeValue("PrintIndividualLabels").AsBoolean(); var designatedLabelGuid = GetAttributeValue("DesignatedSingleLabel").AsGuidOrNull(); foreach (var selectedFamily in CurrentCheckInState.CheckIn.Families.Where(f => f.Selected && f.People.Any(p => p.Selected))) { List <CheckInLabel> labels = new List <CheckInLabel>(); List <CheckInPerson> selectedPeople = selectedFamily.People.Where(p => p.Selected).ToList(); List <CheckInGroupType> selectedGroupTypes = selectedPeople.SelectMany(gt => gt.GroupTypes).Where(gt => gt.Selected).ToList(); List <CheckInGroup> availableGroups = null; List <CheckInLocation> availableLocations = null; List <CheckInSchedule> availableSchedules = null; List <CheckInSchedule> possibleSchedules = null; foreach (DataKey dataKey in checkinArray) { var personId = Convert.ToInt32(dataKey["PersonId"]); var groupId = Convert.ToInt32(dataKey["GroupId"]); var locationId = Convert.ToInt32(dataKey["LocationId"]); var scheduleId = Convert.ToInt32(dataKey["ScheduleId"]); var groupTypeId = selectedGroupTypes.Where(gt => gt.Groups.Any(g => g.Group.Id == groupId)) .Select(gt => gt.GroupType.Id).FirstOrDefault(); availableGroups = selectedGroupTypes.SelectMany(gt => gt.Groups).ToList(); availableLocations = availableGroups.SelectMany(l => l.Locations).ToList(); availableSchedules = availableLocations.SelectMany(s => s.Schedules).ToList(); possibleSchedules = selectedPeople.SelectMany(p => p.PossibleSchedules).ToList(); // Only the current item should be selected in the merge object, unselect everything else if (printIndividually || checkinArray.Count == 1) { // Note: This depends on PreSelected being set properly to undo changes later selectedPeople.ForEach(p => p.Selected = (p.Person.Id == personId)); selectedGroupTypes.ForEach(gt => gt.Selected = (gt.GroupType.Id == groupTypeId)); availableGroups.ForEach(g => g.Selected = (g.Group.Id == groupId)); availableLocations.ForEach(l => l.Selected = (l.Location.Id == locationId)); availableSchedules.ForEach(s => s.Selected = (s.Schedule.Id == scheduleId)); // Unselect the SelectedSchedule properties too possibleSchedules.ForEach(s => s.Selected = (s.Schedule.Id == scheduleId)); } // Create labels for however many items are currently selected var labelErrors = new List <string>(); if (ProcessActivity("Create Labels", out labelErrors)) { SaveState(); } // Add valid grouptype labels, excluding the one-time label (if set) if (checkinArray.Count == 1) { var selectedPerson = selectedPeople.FirstOrDefault(p => p.Person.Id == personId); if (selectedPerson != null) { labels.AddRange(selectedPerson.GroupTypes.Where(gt => gt.Labels != null) .SelectMany(gt => gt.Labels) .Where(l => (!RemoveFromQueue || l.FileGuid != designatedLabelGuid)) ); } RemoveFromQueue = RemoveFromQueue || labels.Any(l => l.FileGuid == designatedLabelGuid); } else { labels.AddRange(selectedGroupTypes.Where(gt => gt.Labels != null) .SelectMany(gt => gt.Labels) .Where(l => (!RemoveFromQueue || l.FileGuid != designatedLabelGuid)) ); } if (!printIndividually) { // don't continue processing if printing all info on one label break; } } // Print client labels if (labels.Any(l => l.PrintFrom == PrintFrom.Client)) { var clientLabels = labels.Where(l => l.PrintFrom == PrintFrom.Client).ToList(); var urlRoot = string.Format("{0}://{1}", Request.Url.Scheme, Request.Url.Authority); clientLabels .OrderBy(l => l.PersonId) .ThenBy(l => l.Order) .ToList() .ForEach(l => l.LabelFile = urlRoot + l.LabelFile); if (!GetAttributeValue("ReprintDesignatedLabel").AsBoolean()) { var item = clientLabels.FirstOrDefault(l => l.FileGuid == designatedLabelGuid); if (item != null && hfLabelReprint.Value.AsBoolean()) { clientLabels.Remove(item); } else { hfLabelReprint.Value = true.ToString(); } } AddLabelScript(clientLabels.ToJson()); pnlContent.Update(); } // Print server labels if (labels.Any(l => l.PrintFrom == PrintFrom.Server)) { string delayCut = @"^XB"; string endingTag = @"^XZ"; var printerIp = string.Empty; var labelContent = new StringBuilder(); // make sure labels have a valid ip var lastLabel = labels.Last(l => l.PrintFrom == PrintFrom.Server && !string.IsNullOrEmpty(l.PrinterAddress)); foreach (var label in labels.Where(l => l.PrintFrom == PrintFrom.Server && !string.IsNullOrEmpty(l.PrinterAddress))) { var labelCache = KioskLabel.Read(label.FileGuid); if (labelCache != null) { if (printerIp != label.PrinterAddress) { printQueue.AddOrReplace(label.PrinterAddress, labelContent); printerIp = label.PrinterAddress; labelContent = new StringBuilder(); } var printContent = labelCache.FileContent; foreach (var mergeField in label.MergeFields) { if (!string.IsNullOrWhiteSpace(mergeField.Value)) { printContent = Regex.Replace(printContent, string.Format(@"(?<=\^FD){0}(?=\^FS)", mergeField.Key), ZebraFormatString(mergeField.Value)); } else { printContent = Regex.Replace(printContent, string.Format(@"\^FO.*\^FS\s*(?=\^FT.*\^FD{0}\^FS)", mergeField.Key), string.Empty); printContent = Regex.Replace(printContent, string.Format(@"\^FD{0}\^FS", mergeField.Key), "^FD^FS"); } } // send a Delay Cut command at the end to prevent cutting intermediary labels if (label != lastLabel) { printContent = Regex.Replace(printContent.Trim(), @"\" + endingTag + @"$", delayCut + endingTag); } labelContent.Append(printContent); } } printQueue.AddOrReplace(printerIp, labelContent); if (printQueue.Any()) { PrintLabels(printQueue); printQueue.Clear(); } else { // give the user feedback when no server labels are configured phPrinterStatus.Controls.Add(new LiteralControl("No labels were created. Please verify that the grouptype is configured with labels and cache is reset.")); } } if (printIndividually || checkinArray.Count == 1) { // reset selections to what they were before queue selectedPeople.ForEach(p => p.Selected = p.PreSelected); possibleSchedules.ForEach(s => s.Selected = s.PreSelected); selectedGroupTypes.ForEach(gt => gt.Selected = gt.PreSelected); availableGroups.ForEach(g => g.Selected = g.PreSelected); availableLocations.ForEach(l => l.Selected = l.PreSelected); availableSchedules.ForEach(s => s.Selected = s.PreSelected); } // since Save Attendance already ran, mark everyone as being checked in var selectedSchedules = availableLocations.Where(l => l.Selected) .SelectMany(s => s.Schedules).Where(s => s.Selected).ToList(); foreach (var selectedSchedule in selectedSchedules) { var serviceStart = (DateTime)selectedSchedule.StartTime; selectedSchedule.LastCheckIn = serviceStart.AddMinutes((double)selectedSchedule.Schedule.CheckInEndOffsetMinutes); } } // refresh the currently checked in flag BindGrid(); }
/// <summary> /// Creates the labels. /// </summary> /// <param name="dataKeyArray">The data key array.</param> /// <returns></returns> private void ProcessLabels(DataKeyArray checkinArray) { // Make sure we can save the attendance and get an attendance code if (RunSaveAttendance) { var attendanceErrors = new List <string>(); if (ProcessActivity("Save Attendance", out attendanceErrors)) { SaveState(); } else { string errorMsg = "<ul><li>" + attendanceErrors.AsDelimited("</li><li>") + "</li></ul>"; maAlert.Show(errorMsg, Rock.Web.UI.Controls.ModalAlertType.Warning); return; } RunSaveAttendance = false; } var printQueue = new Dictionary <string, StringBuilder>(); bool printIndividually = GetAttributeValue("PrintIndividualLabels").AsBoolean(); var designatedLabelGuid = GetAttributeValue("DesignatedSingleLabel").AsGuidOrNull(); foreach (var selectedFamily in CurrentCheckInState.CheckIn.Families.Where(p => p.Selected)) { List <CheckInLabel> labels = new List <CheckInLabel>(); List <CheckInPerson> selectedPeople = selectedFamily.People.Where(p => p.Selected).ToList(); List <CheckInGroupType> selectedGroupTypes = selectedPeople.SelectMany(gt => gt.GroupTypes) .Where(gt => gt.Selected).ToList(); List <CheckInGroup> availableGroups = null; List <CheckInLocation> availableLocations = null; List <CheckInSchedule> availableSchedules = null; foreach (DataKey dataKey in checkinArray) { var personId = Convert.ToInt32(dataKey["PersonId"]); var groupId = Convert.ToInt32(dataKey["GroupId"]); var locationId = Convert.ToInt32(dataKey["LocationId"]); var scheduleId = Convert.ToInt32(dataKey["ScheduleId"]); // Make sure only the current item is selected in the merge object if (printIndividually) { int groupTypeId = selectedGroupTypes.Where(gt => gt.Groups.Any(g => g.Group.Id == groupId)) .Select(gt => gt.GroupType.Id).FirstOrDefault(); availableGroups = selectedGroupTypes.SelectMany(gt => gt.Groups).ToList(); availableLocations = availableGroups.SelectMany(l => l.Locations).ToList(); availableSchedules = availableLocations.SelectMany(s => s.Schedules).ToList(); selectedPeople.ForEach(p => p.Selected = (p.Person.Id == personId)); selectedGroupTypes.ForEach(gt => gt.Selected = (gt.GroupType.Id == groupTypeId)); availableGroups.ForEach(g => g.Selected = (g.Group.Id == groupId)); availableLocations.ForEach(l => l.Selected = (l.Location.Id == locationId)); availableSchedules.ForEach(s => s.Selected = (s.Schedule.Id == scheduleId)); } // Create labels for however many items are currently selected // #TODO: Rewrite CreateLabels so it would only resolve a list of ID's var labelErrors = new List <string>(); if (ProcessActivity("Create Labels", out labelErrors)) { SaveState(); } // Add valid grouptype labels, excluding the one-time label (if set) if (printIndividually) { var selectedPerson = selectedPeople.FirstOrDefault(p => p.Person.Id == personId); labels.AddRange(selectedPerson.GroupTypes.Where(gt => gt.Labels != null) .SelectMany(gt => gt.Labels) .Where(l => (!RemoveFromQueue || l.FileGuid != designatedLabelGuid)) ); RemoveFromQueue = RemoveFromQueue || labels.Any(l => l.FileGuid == designatedLabelGuid); } else { labels.AddRange(selectedGroupTypes.Where(gt => gt.Labels != null) .SelectMany(gt => gt.Labels) .Where(l => (!RemoveFromQueue || l.FileGuid != designatedLabelGuid)) ); // don't continue processing if printing all info on one label break; } } // Print client labels if (labels.Any(l => l.PrintFrom == Rock.Model.PrintFrom.Client)) { var clientLabels = labels.Where(l => l.PrintFrom == PrintFrom.Client).ToList(); var urlRoot = string.Format("{0}://{1}", Request.Url.Scheme, Request.Url.Authority); clientLabels.ForEach(l => l.LabelFile = urlRoot + l.LabelFile); AddLabelScript(clientLabels.ToJson()); } // Print server labels if (labels.Any(l => l.PrintFrom == Rock.Model.PrintFrom.Server)) { string delayCut = @"^XB"; string endingTag = @"^XZ"; var printerIp = string.Empty; var labelContent = new StringBuilder(); // make sure labels have a valid ip var lastLabel = labels.Last(); foreach (var label in labels.Where(l => l.PrintFrom == PrintFrom.Server && !string.IsNullOrEmpty(l.PrinterAddress))) { var labelCache = KioskLabel.Read(label.FileGuid); if (labelCache != null) { if (printerIp != label.PrinterAddress) { printQueue.AddOrReplace(label.PrinterAddress, labelContent); printerIp = label.PrinterAddress; labelContent = new StringBuilder(); } var printContent = labelCache.FileContent; foreach (var mergeField in label.MergeFields) { if (!string.IsNullOrWhiteSpace(mergeField.Value)) { printContent = Regex.Replace(printContent, string.Format(@"(?<=\^FD){0}(?=\^FS)", mergeField.Key), ZebraFormatString(mergeField.Value)); } else { printContent = Regex.Replace(printContent, string.Format(@"\^FO.*\^FS\s*(?=\^FT.*\^FD{0}\^FS)", mergeField.Key), string.Empty); printContent = Regex.Replace(printContent, string.Format(@"\^FD{0}\^FS", mergeField.Key), "^FD^FS"); } } // send a Delay Cut command at the end to prevent cutting intermediary labels if (label != lastLabel) { printContent = Regex.Replace(printContent.Trim(), @"\" + endingTag + @"$", delayCut + endingTag); } labelContent.Append(printContent); } } printQueue.AddOrReplace(printerIp, labelContent); } if (printQueue.Any()) { PrintLabels(printQueue); printQueue.Clear(); } if (printIndividually) { // reset selections to what they were before queue selectedPeople.ForEach(p => p.Selected = p.PreSelected); selectedGroupTypes.ForEach(gt => gt.Selected = gt.PreSelected); availableGroups.ForEach(g => g.Selected = g.PreSelected); availableLocations.ForEach(l => l.Selected = l.PreSelected); availableSchedules.ForEach(s => s.Selected = s.PreSelected); } } }
public void DataKeyArray_DefaultPropertyNotWorking() { DataKeyArray keyarray = new DataKeyArray(new ArrayList()); Assert.AreEqual(keyarray, keyarray.SyncRoot, "SyncRoot"); }
protected void ComputeColumns() { int indexRow = 0; DataKeyArray dka = GridViewMembers.DataKeys; foreach (GridViewRow r in GridViewMembers.Rows) { Label isApproved = ( Label )GridViewMembers.Rows[indexRow].FindControl("LabelIsApproved"); Label isLocked = ( Label )GridViewMembers.Rows[indexRow].FindControl("LabelLocked"); Label isOnline = ( Label )GridViewMembers.Rows[indexRow].FindControl("LabelOnline"); Label lastLoginDate = ( Label )GridViewMembers.Rows[indexRow].FindControl("LabelLastLoginDate"); Label email = ( Label )GridViewMembers.Rows[indexRow].FindControl("LabelEmail"); HyperLink hyperlinkEmail = ( HyperLink )GridViewMembers.Rows[indexRow].FindControl("HyperLinkEmail"); Label dateCreation = ( Label )GridViewMembers.Rows[indexRow].FindControl("LabelDateCreation"); Label dateFinAbonnement = ( Label )GridViewMembers.Rows[indexRow].FindControl("LabelDateFinAbonnement"); Guid memberGuid = new Guid(dka[indexRow].Value.ToString()); MembershipUser user = Membership.GetUser(memberGuid); if (user.IsApproved) { isApproved.Text = "Vrai"; isApproved.CssClass = "LabelBlueStyle"; } else { isApproved.Text = "Faux"; isApproved.CssClass = "LabelRedStyle"; } if (user.IsLockedOut) { isLocked.Text = "Vrai"; isLocked.CssClass = "LabelRedStyle"; } else { isLocked.Text = "Faux"; isLocked.CssClass = "LabelBlueStyle"; } if (user.IsOnline) { isOnline.Text = "Vrai"; isOnline.CssClass = "LabelGreenStyle"; } else { isOnline.Text = "Faux"; isOnline.CssClass = "LabelBlueStyle"; } lastLoginDate.Text = user.LastLoginDate.ToShortDateString(); lastLoginDate.ToolTip = user.LastLoginDate.ToShortTimeString(); email.Text = user.Email; hyperlinkEmail.NavigateUrl = "mailto:" + user.Email; hyperlinkEmail.ToolTip = user.Email; dateCreation.Text = user.CreationDate.ToShortDateString(); if (Roles.IsUserInRole(user.UserName, "Découverte")) { dateCreation.ToolTip = "Découverte"; } else { dateCreation.ToolTip = "Client"; dateCreation.CssClass = "BoundFieldDateGreenStyle"; } MemberInfo member = MemberInfo.Get(memberGuid); dateFinAbonnement.Text = member.DateFinAbonnement.ToShortDateString(); DateTime now = DateTime.Now; if (now < member.DateFinAbonnement) { if (Roles.IsUserInRole(user.UserName, "Découverte") == false) { dateFinAbonnement.CssClass = "BoundFieldDateGreenStyle"; } } else { dateFinAbonnement.CssClass = "BoundFieldDateRedStyle"; // Dernier jour d'Abonnement if (now < member.DateFinAbonnement.AddDays(1)) { dateFinAbonnement.CssClass = "BoundFieldDateOrangeStyle"; } } TimeSpan ts = member.DateFinAbonnement - DateTime.Now; dateFinAbonnement.ToolTip = ts.Days.ToString(); indexRow += 1; } }
public GridDeleteEventArgs(DataKeyArray keys) { m_DataKeys = keys; }