本文整理汇总了C#中iTextSharp.text.List.Distinct方法的典型用法代码示例。如果您正苦于以下问题:C# List.Distinct方法的具体用法?C# List.Distinct怎么用?C# List.Distinct使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类iTextSharp.text.List
的用法示例。
在下文中一共展示了List.Distinct方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Proyectos
// GET: Proyectos
public ActionResult Proyectos(int? areaId, int? tipoId)
{
ApplicationUser usuario = (ApplicationUser)db.Users.FirstOrDefault(item => item.UserName == User.Identity.Name);
int periodId = (int)Session["SelectedPeriod"];
Periodo period = db.Periodos.Find(periodId);
Area area;
TipoProyecto tipo;
if (areaId == null)
{
if (usuario.TienePermiso(26) && usuario.TieneNivel(2))
{
area = db.Areas.Where(item => item.Nivel.ID == 3 && item.AreaPadre.ID == usuario.UsuarioArea.ID).First();
}
if (usuario.TienePermiso(1) || (usuario.TienePermiso(26) && (usuario.TieneNivel(1)))) // Administrador y Presidente
{
area = db.Areas.Where(item => item.Nivel.ID == 3).First();
}
else if (usuario.TieneNivel(3) && usuario.TienePermiso(6))
{
area = usuario.UsuarioArea;
}
else
{
area = usuario.UsuarioArea;
}
areaId = area.ID;
}
else
{
area = db.Areas.Where(item => item.Nivel.ID == 3).FirstOrDefault(item => item.ID == areaId);
}
if (tipoId == null)
{
tipo = db.TipoProyecto.FirstOrDefault();
tipoId = tipo.ID;
}
else
{
tipo = db.TipoProyecto.Find(tipoId);
}
ViewBag.CurrentTipo = tipo;
ViewBag.CurrentArea = area;
if (usuario.TienePermiso(26) && usuario.TieneNivel(2))
{
List<Area> Areas = new List<Area>();
List<int> areasId = new List<int>();
Areas = db.Areas.Where(item => item.Nivel.ID == 3 && item.AreaPadre.ID == usuario.UsuarioArea.ID).ToList();
areasId = (from a in Areas
select a.ID).ToList();
Areas.AddRange(db.Areas.Where(item => item.Nivel.ID == 3 && areasId.Any(p => item.AreaPadre.ID == p)).ToList());
areasId = (from a in Areas
select a.ID).ToList();
Areas.AddRange(db.Areas.Where(item => item.Nivel.ID == 3 && areasId.Any(p => item.AreaPadre.ID == p)).ToList());
ViewBag.Areas = Areas.Distinct().OrderBy(item => item.ID);
}
if (usuario.TienePermiso(1) || (usuario.TienePermiso(26) && (usuario.TieneNivel(1)))) // Administrador y Presidente
{
ViewBag.Areas = db.Areas.Where(item => item.Nivel.ID == 3).ToList();
}
if (usuario.TienePermiso(6) && usuario.TieneNivel(3))
{
List<Area> Areas = new List<Area>();
Areas.Add(usuario.UsuarioArea);
Areas.AddRange(usuario.UsuarioArea.AreasHijas.ToList());
ViewBag.Areas = Areas.OrderBy(item => item.AreaPadre.ID);
}
ViewBag.Tipos = db.TipoProyecto.ToList();
ViewBag.usuario = usuario;
ViewBag.PeriodoSeleccionado = period;
return View(db.Proyectos.Where(item => item.Tipo.ID == tipoId && item.Area.ID == areaId && item.Periodos.Any(p => p.ID == periodId)).ToList());
}
示例2: Tablero
// GET: Tablero
public ActionResult Tablero(string lvl, int? areaId)
{
ApplicationUser usuario = (ApplicationUser)db.Users.FirstOrDefault(item => item.UserName == User.Identity.Name);
int periodId = (int)Session["SelectedPeriod"];
Periodo period = db.Periodos.Find(periodId);
int nivel;
Area area;
if (lvl == null)
{
nivel = usuario.UsuarioArea.Nivel.ID;
}
else
{
nivel = int.Parse(lvl);
}
// Area
if (areaId == null)
{
if (usuario.TienePermiso(1)) // Administrador
{
area = db.Areas.First();
}
else
{
area = usuario.UsuarioArea;
}
areaId = area.ID;
}
else
{
area = db.Areas.FirstOrDefault(item => item.ID == areaId);
}
ViewBag.CurrentArea = area;
// Areas
if (usuario.TieneNivel(1) || usuario.TienePermiso(1))
{
ViewBag.Areas = db.Areas.Where(item => item.Nivel.ID == nivel).ToList();
}
else if (usuario.TieneNivel(2))
{
if (nivel == 2)
{
ViewBag.Areas = db.Areas.Where(item => item.ID == usuario.UsuarioArea.ID).ToList();
}
else if (nivel == 3)
{
List<Area> Areas = new List<Area>();
List<int> areasId = new List<int>();
Areas = db.Areas.Where(item => item.Nivel.ID == nivel && item.AreaPadre.ID == usuario.UsuarioArea.ID).ToList();
areasId = (from a in Areas
select a.ID).ToList();
Areas.AddRange(db.Areas.Where(item => item.Nivel.ID == nivel && areasId.Any(p => item.AreaPadre.ID == p)).ToList());
areasId = (from a in Areas
select a.ID).ToList();
Areas.AddRange(db.Areas.Where(item => item.Nivel.ID == nivel && areasId.Any(p => item.AreaPadre.ID == p)).ToList());
ViewBag.Areas = Areas.Distinct().OrderBy(item => item.ID);
}
}
else if (usuario.TienePermiso(6))
{
List<Area> Areas = new List<Area>();
Areas.Add(usuario.UsuarioArea);
Areas.AddRange(usuario.UsuarioArea.AreasHijas.ToList());
ViewBag.Areas = Areas.OrderBy(item => item.AreaPadre.ID);
}
lvl = nivel.ToString();
ViewBag.usuario = usuario;
ViewBag.Nivel = lvl;
ViewBag.PeriodoSeleccionado = period;
/* int _nivel = 3;
if (usuario.TieneNivel(1))
{
_nivel = 1;
}
if (usuario.TieneNivel(2))
{
_nivel = 2;
}
if (usuario.TieneNivel(3))
{
_nivel = 3;
}*/
List<NivelOrganizacional> Niveles = new List<NivelOrganizacional>();
NivelOrganizacional Nivel_01 = db.NivelesOrganizacionales.Find(1);
Niveles.Add(Nivel_01);
NivelOrganizacional Nivel_02 = db.NivelesOrganizacionales.Find(2);
Niveles.Add(Nivel_02);
NivelOrganizacional Nivel_03 = db.NivelesOrganizacionales.Find(3);
Niveles.Add(Nivel_03);
ViewBag.Niveles = Niveles;
//.........这里部分代码省略.........
示例3: nuevopdf2
//.........这里部分代码省略.........
}
}
}
// Eliminar con los filtros las reservas que no esten
foreach (var filtro in listaFiltros)
{
for (int i = 0; i < listaTemporal1.Count; i++)
{
if ((lTemporal1.ElementAt(i).DSRIFTIPOSACTIVIDAD.NOM_TIPOACTIVIDAD == "Alquiler Instalaciones" && filtro == "alquiler") ||
(lTemporal1.ElementAt(i).DSRIFTIPOSACTIVIDAD.NOM_TIPOACTIVIDAD == "Actividad Interna" && filtro == "actividad") ||
((lTemporal1.ElementAt(i).DSRIFTIPOSACTIVIDAD.NOM_TIPOACTIVIDAD == "Transferencia Tecnológica" ||
lTemporal1.ElementAt(i).DSRIFTIPOSACTIVIDAD.NOM_TIPOACTIVIDAD == "Vinculación Empresarial" ||
lTemporal1.ElementAt(i).DSRIFTIPOSACTIVIDAD.NOM_TIPOACTIVIDAD == "Educación Continua") && filtro == "ejes"))
{
lTemporal1.Remove(lTemporal1.ElementAt(i));
i--;
}
}
}
pdfDoc.Add(table); // Hasta aqui toda la tabla
var lista1 = lTemporal1.ToList().OrderBy(aa => aa.FEC_INICIALRESERVACION.Year);
var lista2 = lista1.ToList().OrderBy(aa => aa.FEC_INICIALRESERVACION.Month);
var lista3 = lista2.ToList().OrderBy(aa => aa.FEC_INICIALRESERVACION.Date);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var listaInmuebles = lista3.ToList();
List<int> UnicosInmuebles = new List<int>();// Dejar solo un inmueble de cada clase
foreach (var inmue in listaInmuebles)
{
UnicosInmuebles.Add(inmue.DSRIFINMUEBLE.ID_INMUEBLE);
}
UnicosInmuebles = UnicosInmuebles.Distinct().ToList();
///////////
// Agregamos Un Titulo Para la descripción de todo el costo general de los inmuebles para que no se vea feo XD
Chunk factura = new Chunk("COSTO TOTAL DE CADA INMUEBLE", FontFactory.GetFont(FontFactory.TIMES_BOLD, 11));
Paragraph pfactura = new Paragraph();
pfactura.Alignment = Element.ALIGN_CENTER;
pfactura.Add(factura);
pdfDoc.Add(pfactura);
for (int a = 0; a < UnicosInmuebles.Count; a++) // recorre la lista de inmuebles unicos de la lista previamente llenada
{
int? costoGeneral = 0;
int? costoUnitario = 0;
foreach (var reserva in listaInmuebles) // recorre la lista en donde estan todas las reservas que se encuentran en el modelo
{
if (reserva.ID_INMUEBLE == UnicosInmuebles.ElementAt(a)) // se compara si el id de la lista es igual a la de la reserva para empezar a sumar
{
//////////////////////////////////////////////////////////////////////
if (reserva.DSRIFINMUEBLE.DSRIFCLASIFINMUEBLE.NOM_CLASIFINMUEBLE == "CTEC") // Aqui se cobro por hora para los del CTEC
{
while (reserva.FEC_INICIALRESERVACION <= reserva.FEC_FINALRESERVACION)
{
while (reserva.HOR_INICIO < reserva.HOR_FINAL)
{
TimeSpan mediaHora = TimeSpan.FromHours(1); // Agregar Media hora a la hora de inicio
costoUnitario += reserva.DSRIFINMUEBLE.COS_INMUEBLE;
reserva.HOR_INICIO = reserva.HOR_INICIO.Add(mediaHora);
}
if (reserva.DSRIFINMUEBLE.NOM_INMUEBLE == "Tecnoaula 1")
示例4: GetCostosGenerales
public JsonResult GetCostosGenerales(string lista)
{
/*Obtiene la fecha para realizar las comparaciones*/
var _res = Json(new[] {
new { id="", name=""},
}, JsonRequestBehavior.AllowGet);
List<string> list = lista.Split(',').ToList();
int largo = list.Count;
DateTime FechaI = DateTime.Parse(list[largo - 2]);
DateTime FechaF = DateTime.Parse(list[largo - 1]);
largo = largo - 3;
var res = db.DSRIFRESERVACION;
var todasReservas = from r in res
where ((r.FEC_INICIALRESERVACION >= FechaI && r.FEC_INICIALRESERVACION <= FechaF && r.TXT_ESTADO != "Rechazada" && r.TXT_ESTADO != "En Proceso"))
select r;
var lTemporal1 = todasReservas.ToList();
foreach (var reser in todasReservas.ToList())
{
bool eli = true;
for (int a = 0; a <= largo; a++)
{
if (reser.ID_INMUEBLE == Convert.ToInt32(list[a]))
{
eli = false;
break;
}
}
if (eli)
{
for (int i = 0; i < lTemporal1.Count; i++)
{
if (lTemporal1.ElementAt(i).ID_INMUEBLE == reser.ID_INMUEBLE)
{
lTemporal1.Remove(lTemporal1.ElementAt(i));
eli = true;
break;
}
}
}
}
var lista1 = lTemporal1.ToList().OrderBy(aa => aa.FEC_INICIALRESERVACION.Year);
var lista2 = lista1.ToList().OrderBy(aa => aa.FEC_INICIALRESERVACION.Month);
var lista3 = lista2.ToList().OrderBy(aa => aa.FEC_INICIALRESERVACION.Date);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var listaInmuebles = lista3.ToList();
List<int> UnicosInmuebles = new List<int>();// Dejar solo un inmueble de cada clase
foreach (var inmue in listaInmuebles)
{
UnicosInmuebles.Add(inmue.DSRIFINMUEBLE.ID_INMUEBLE);
}
UnicosInmuebles = UnicosInmuebles.Distinct().ToList();
///////////
for (int a = 0; a < UnicosInmuebles.Count; a++) // recorre la lista de inmuebles unicos de la lista previamente llenada
{
int? costoGeneral = 0;
int? costoUnitario = 0;
foreach (var reserva in listaInmuebles) // recorre la lista en donde estan todas las reservas que se encuentran en el modelo
{
if (reserva.ID_INMUEBLE == UnicosInmuebles.ElementAt(a)) // se compara si el id de la lista es igual a la de la reserva para empezar a sumar
{
//////////////////////////////////////////////////////////////////////
if (reserva.DSRIFINMUEBLE.DSRIFCLASIFINMUEBLE.NOM_CLASIFINMUEBLE == "CTEC") // Aqui se cobro por hora para los del CTEC
{
while (reserva.FEC_INICIALRESERVACION <= reserva.FEC_FINALRESERVACION)
{
while (reserva.HOR_INICIO < reserva.HOR_FINAL)
{
TimeSpan mediaHora = TimeSpan.FromMinutes(30); // Agregar Media hora a la hora de inicio
costoUnitario += reserva.DSRIFINMUEBLE.COS_INMUEBLE / 2;
reserva.HOR_INICIO = reserva.HOR_INICIO.Add(mediaHora);
}
if (reserva.DSRIFINMUEBLE.NOM_INMUEBLE == "Tecnoaula 1")
{
costoUnitario += 20000;
}
DateTime nuevaFecha = reserva.FEC_INICIALRESERVACION.AddDays(1);
reserva.FEC_INICIALRESERVACION = nuevaFecha;
}
}
//////////////////////////////////////////////////////////////////////
else if (reserva.DSRIFINMUEBLE.DSRIFCLASIFINMUEBLE.NOM_CLASIFINMUEBLE == "ECOTEC") // Aqui se cobra por Día para los del ECOTEC
{
while (reserva.FEC_INICIALRESERVACION <= reserva.FEC_FINALRESERVACION)
{
costoUnitario += reserva.DSRIFINMUEBLE.COS_INMUEBLE;
DateTime nuevaFecha = reserva.FEC_INICIALRESERVACION.AddDays(1);
reserva.FEC_INICIALRESERVACION = nuevaFecha;
}
}
}
}
costoGeneral += costoUnitario;
}
JsonObject _resultado = new JsonObject();
return _res;
}
示例5: ParseArguments
//parse arguments
/// <summary>
/// parses all arguments and configures the program, returns true if we should exit
/// </summary>
/// <returns>
/// true if help or version or no args were specified and we should exit
/// </returns>
public bool ParseArguments(string[] args)
{
//if no args output short help
if (args.Length == 0) {
Konsole.WriteLine(CC.WHITE, Help.basic);
return true;
}
//temp list to collect inputs
var inputsList = new List<string>();
//keep track of if files/folders are found to determine "mode"
bool inputFolders = false;
bool inputFiles = false;
//parse command line
var argq = args.ToQueue(); //using a queue so we can easily grab the next arg at any point
while (argq.Count != 0) {
string a = argq.Dequeue();
//check if a is last, matches *.pdf and is not a folder
//NOTE: in rare case img2pdf folder1 folder2 folder.pdf where folder.pdf is a folder but the user wanted it as the output, they can use -o folder.pdf
if (argq.IsEmpty() && a.EndsWith(".pdf") && ! Directory.Exists(a)) {
output = a;
continue;
}
//switches
if (a.StartsWith("-") && ! a.StartsWith("--")) {
//we use a character array and a for loop so we can tell if we are at the end of a -abcd group
//for switches that take a parameter like -o output.pdf so ensure they are the last in the group
var carray = a.RemoveFromStart("-").ToLower().ToCharArray();
for (int i = 0; i < carray.Length; i++ ) {
char c = carray[i];
switch (c) {
case 'v':
var vinfo = FileVersionInfo.GetVersionInfo(Assembly.GetEntryAssembly().Location).ProductVersion;
//TODO add some color
Konsole.WriteLine(CC.WHITE, appname + ".exe " + vinfo);
Konsole.WriteLine(CC.WHITE, "Copyright (c) 2014 [email protected] @ " + homepage);
return true;
case 'h':
var v = FileVersionInfo.GetVersionInfo(Assembly.GetEntryAssembly().Location).FileVersion;
Konsole.WriteLine(CC.GRAY, Help.full.FormatIt(v));
return true;
case 'o':
if (i != carray.Length - 1) {
throw new Exception("-o can only be used at the end of a switch group. example -tso c:\\output.pdf");
}
if (argq.IsEmpty()) {
throw new Exception("-o used without a output folder/file");
}
//check for .pdf ending?
output = argq.Dequeue();
break;
case 'l':
embiggen = true;
break;
case 's':
ensmallen = true;
break;
default:
throw new Exception("unknown switch '"+c+"'");
}
}
continue;
}
//is an input, ensure it exists
if (Directory.Exists(a)) {
inputFolders = true;
} else if (File.Exists(a)) {
inputFiles = true;
} else {
throw new Exception("input file/folder '" + a + "' doesn't exist.");
}
inputsList.Add(KPath.EnsureRooted(a));
}
//remove duplicates and convert to array because why not
paths = inputsList.Distinct(StringComparer.OrdinalIgnoreCase).ToArray();
//check sanity
//.........这里部分代码省略.........
示例6: ICS109
public ActionResult ICS109(Guid id)
{
var mission = this.db.Missions.Include("Log").Single(f => f.Id == id);
string pdfTemplate = Server.MapPath(Url.Content("~/Content/forms/ics109-log.pdf"));
using (MemoryStream result = new MemoryStream())
{
iTextSharp.text.Document resultDoc = new iTextSharp.text.Document();
PdfCopy copy = new PdfCopy(resultDoc, result);
resultDoc.Open();
Queue<Tuple<string, string, string>> rows = null;
int numPages = -1;
int totalRows = 0;
int page = 1;
List<string> operators = new List<string>();
do
{
using (MemoryStream filledForm = new MemoryStream())
{
iTextSharp.text.pdf.PdfReader pdfReader = new iTextSharp.text.pdf.PdfReader(pdfTemplate);
//// create and populate a string builder with each of the
//// field names available in the subject PDF
//StringBuilder sb = new StringBuilder();
//foreach (var de in pdfReader.AcroFields.Fields)
//{
// sb.Append(de.Key.ToString() + Environment.NewLine);
//}
//// Write the string builder's content to the form's textbox
using (MemoryStream buf = new MemoryStream())
{
PdfStamper stamper = new PdfStamper(pdfReader, buf);
var fields = stamper.AcroFields;
if (rows == null)
{
rows = Fill109Rows(mission.Log.OrderBy(f => f.Time), fields, "topmostSubform[0].Page1[0].SUBJECTRow1[0]");
totalRows = rows.Count;
}
foreach (var field in fields.Fields)
{
fields.SetField(field.Key, "");
}
int currentRow = 1;
operators.Clear();
while (rows.Count > 0 && fields.GetField("topmostSubform[0].Page1[0].SUBJECTRow" + currentRow.ToString() + "[0]") != null)
{
var row = rows.Dequeue();
fields.SetField("topmostSubform[0].Page1[0].TIMERow" + currentRow.ToString() + "[0]", row.Item1);
fields.SetField("topmostSubform[0].Page1[0].SUBJECTRow" + currentRow.ToString() + "[0]", row.Item2);
if (!operators.Contains(row.Item3)) operators.Add(row.Item3);
currentRow++;
}
// Now we know how many rows on a page. Figure out how many pages we need for all rows.
if (numPages < 0)
{
int rowsPerPage = currentRow - 1;
int remainder = totalRows % currentRow;
numPages = ((remainder == 0) ? 0 : 1) + (totalRows / currentRow);
}
if (numPages > 0)
{
fields.SetField("topmostSubform[0].Page1[0]._1_Incident_Name[0]", " " + mission.Title);
fields.SetField("topmostSubform[0].Page1[0]._3_DEM_KCSO[0]", " " + mission.StateNumber);
fields.SetField("topmostSubform[0].Page1[0]._5_RADIO_OPERATOR_NAME_LOGISTICS[0]", string.Join(",", operators.Distinct()));
fields.SetField("topmostSubform[0].Page1[0].Text30[0]", string.Format("{0:yyyy-MM-dd}", mission.Log.DefaultIfEmpty().Min(f => (f == null) ? (DateTime?)null : f.Time)));
fields.SetField("topmostSubform[0].Page1[0].Text31[0]", string.Format("{0:yyyy-MM-dd}", mission.Log.DefaultIfEmpty().Max(f => (f == null) ? (DateTime?)null : f.Time)));
fields.SetField("topmostSubform[0].Page1[0].Text28[0]", page.ToString());
fields.SetField("topmostSubform[0].Page1[0].Text29[0]", numPages.ToString());
fields.SetField("topmostSubform[0].Page1[0].DateTime[0]", DateTime.Now.ToString(" MMM d, yyyy HH:mm"));
fields.SetField("topmostSubform[0].Page1[0]._8_Prepared_by_Name[0]", Strings.DatabaseName);
fields.RemoveField("topmostSubform[0].Page1[0].PrintButton1[0]");
}
stamper.FormFlattening = false;
stamper.Close();
pdfReader = new PdfReader(buf.ToArray());
copy.AddPage(copy.GetImportedPage(pdfReader, 1));
page++;
}
}
//copy.Close();
} while (rows != null && rows.Count > 0);
resultDoc.Close();
return File(result.ToArray(), "application/pdf", mission.StateNumber + "_ICS109_CommLog.pdf");
//.........这里部分代码省略.........
示例7: Index
public ActionResult Index()
{
var user = userRepository.GetUserByUsername(User.Identity.Name);
var allPolls = new List<Poll>();
allPolls.AddRange(user.ManagedPolls);
allPolls.AddRange(user.CreatedPolls);
allPolls.AddRange(pollRepository.GetPollsMasteredBy(user));
return View(allPolls.Distinct().OrderByDescending(p => p.pollID).ToList());
}