-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPeliculasCN.cs
259 lines (220 loc) · 9.75 KB
/
PeliculasCN.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MSDNVideo.AccesoDatos;
using MSDNVideo.Comun;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
using System.Security.Permissions;
using System.Threading;
namespace MSDNVideo.LogicaNegocio
{
/// <summary>
/// Operaciones de negocio sobre películas
/// </summary>
[DataObjectAttribute(true)]
public class PeliculasCN
{
#region Operaciones de Filtrado
/// <summary>
/// Obtiene todas las películas del sistema
/// Seguridad: Público
/// </summary>
/// <param name="incluirActores">Incluir las entidades de actores asociadas a las películas</param>
/// <returns>Lista de películas</returns>
[DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
public BindingList<Pelicula> ObtenerPeliculas(bool incluirActores)
{
PeliculasAD peliculasAD = new PeliculasAD();
return peliculasAD.ObtenerPeliculas(incluirActores);
}
/// <summary>
/// Obtiene las películas que cumplen el filtro dinámico indicado
/// Seguridad: Público
/// </summary>
/// <param name="filtro">Filtro dinámico</param>
/// <param name="incluirActores">Incluir actores asociados</param>
/// <param name="incluirPuntuaciones">Incluir puntuaciones asociadas</param>
/// <param name="total">Número total de registros sin paginar</param>
/// <returns>Lista de películas</returns>
public BindingList<Pelicula> ObtenerPeliculasPorFiltro(FiltroPeliculas filtro, bool incluirActores, bool incluirPuntuaciones, out int total)
{
PeliculasAD peliculasAD = new PeliculasAD();
return peliculasAD.ObtenerPeliculasPorFiltro(filtro, incluirActores, incluirPuntuaciones, out total);
}
/// <summary>
/// Obtiene la película con la código de barras indicado
/// Seguridad: Público
/// </summary>
/// <param name="codBarras">Código de barras</param>
/// <param name="incluirActores">Incluir actores asociados</param>
/// <returns>Película</returns>
[DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
public Pelicula ObtenerPeliculaPorCodBarras(string codBarras, bool incluirActores, bool incluirPuntuacionMedia)
{
PeliculasAD peliculasAD = new PeliculasAD();
return peliculasAD.ObtenerPeliculaPorCodBarras(codBarras, incluirActores, incluirPuntuacionMedia);
}
/// <summary>
/// Obtiene las películas pendientes de devolver del usuario dado
/// Seguridad: Administrador
/// </summary>
/// <param name="nifUsuario">NIF del usuario</param>
/// <returns>Lista de películas</returns>
[PrincipalPermission(SecurityAction.Demand, Authenticated=true, Role="Admin")]
public BindingList<Pelicula> ObtenerPeliculasPendienteDevolver(string nifUsuario)
{
PeliculasAD peliculasAD = new PeliculasAD();
return peliculasAD.ObtenerPeliculasPendienteDevolver(nifUsuario);
}
/// <summary>
/// Obtiene las películas pendientes de devolver del usuario actual
/// Seguridad: Socios
/// </summary>
/// <param name="nifUsuario">NIF del usuario</param>
/// <returns>Lista de películas</returns>
[PrincipalPermission(SecurityAction.Demand, Authenticated = true, Role = "Socio")]
public BindingList<Pelicula> ObtenerMisPeliculasPendienteDevolver()
{
string nifUsuario = Thread.CurrentPrincipal.Identity.Name;
PeliculasAD peliculasAD = new PeliculasAD();
return peliculasAD.ObtenerPeliculasPendienteDevolver(nifUsuario);
}
/// <summary>
/// Obtiene las películas pendientes de recoger del usuario dado
/// Seguridad: Administradores
/// </summary>
/// <param name="nifUsuario">NIF del usuario</param>
/// <returns>Lista de películas</returns>
[PrincipalPermission(SecurityAction.Demand, Authenticated = true, Role = "Admin")]
public BindingList<Pelicula> ObtenerPeliculasPendienteRecoger(string nifUsuario)
{
PeliculasAD peliculasAD = new PeliculasAD();
return peliculasAD.ObtenerPeliculasPendienteRecoger(nifUsuario);
}
/// <summary>
/// Obtiene las películas pendientes de recoger del usuario actual
/// Seguridad: Socios
/// </summary>
/// <returns>Lista de películas</returns>
[PrincipalPermission(SecurityAction.Demand, Authenticated = true, Role = "Socio")]
public BindingList<Pelicula> ObtenerMisPeliculasPendienteRecoger()
{
string nifUsuario = Thread.CurrentPrincipal.Identity.Name;
PeliculasAD peliculasAD = new PeliculasAD();
return peliculasAD.ObtenerPeliculasPendienteRecoger(nifUsuario);
}
/// <summary>
/// Obtiene las películas más alquiladas
/// Seguridad: Público
/// </summary>
/// <returns>Lista de películas</returns>
public BindingList<Pelicula> ObtenerTopPeliculasAlquiler()
{
PeliculasAD peliculasAD = new PeliculasAD();
return peliculasAD.ObtenerTopPeliculasAlquiler();
}
/// <summary>
/// Obtiene las películas más vendidas
/// Seguridad: Público
/// </summary>
/// <returns>Lista de películas</returns>
public BindingList<Pelicula> ObtenerTopPeliculasVentas()
{
PeliculasAD peliculasAD = new PeliculasAD();
return peliculasAD.ObtenerTopPeliculasVentas();
}
/// <summary>
/// Obtiene las películas más valoradas
/// Seguridad: Público
/// </summary>
/// <returns>Lista de películas</returns>
public BindingList<Pelicula> ObtenerTopPeliculasPuntuacion()
{
PeliculasAD peliculasAD = new PeliculasAD();
return peliculasAD.ObtenerTopPeliculasPuntuacion();
}
#endregion
#region Mantenimiento de películas
/// <summary>
/// Modifica la película dada
/// Seguridad: Administradores
/// </summary>
/// <param name="pelicula">Película modificada</param>
/// <param name="original">Película original</param>
[PrincipalPermission(SecurityAction.Demand, Authenticated = true, Role = "Admin")]
public void ActualizarPelicula(Pelicula pelicula, Pelicula original)
{
PeliculasAD peliculasAD = new PeliculasAD();
peliculasAD.ActualizarPelicula(pelicula, original);
}
/// <summary>
/// Elimina la película dada
/// Seguridad: Administradores
/// </summary>
/// <param name="pelicula">Película a eliminar</param>
[PrincipalPermission(SecurityAction.Demand, Authenticated = true, Role = "Admin")]
public void EliminarPelicula(Pelicula pelicula)
{
PeliculasAD peliculasAD = new PeliculasAD();
peliculasAD.EliminarPelicula(pelicula);
}
/// <summary>
/// Añade la película dada
/// Seguridad: Administradores
/// </summary>
/// <param name="pelicula">Película a añadir</param>
[PrincipalPermission(SecurityAction.Demand, Authenticated = true, Role = "Admin")]
public void AgregarPelicula(Pelicula pelicula)
{
PeliculasAD peliculasAD = new PeliculasAD();
peliculasAD.AgregarPelicula(pelicula);
}
/// <summary>
/// Obtiene la carátula asociada a la película indicada
/// Seguridad: Público
/// </summary>
/// <param name="codBarras">Código de barras de la película</param>
/// <param name="ancho">Ancho deseado de la imagen</param>
/// <param name="alto">Alto deseado de la imagen</param>
/// <returns>Array de bytes con la imagen de la carátula</returns>
public byte[] ObtenerCaratula(string codBarras, int ancho, int alto)
{
PeliculasAD peliculasAD = new PeliculasAD();
byte[] buffer;
Bitmap bmpSource, bmpDest;
MemoryStream memStream;
buffer = peliculasAD.ObtenerCaratula(codBarras);
if (ancho == 0 && alto == 0)
return buffer;
bmpSource = new Bitmap(new MemoryStream(buffer));
if (ancho >= bmpSource.Width || alto >= bmpSource.Height)
return buffer;
bmpDest = new Bitmap(ancho, alto, bmpSource.PixelFormat);
Graphics g = Graphics.FromImage(bmpDest);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.DrawImage(bmpSource,0,0,bmpDest.Width, bmpDest.Height);
g.Dispose();
memStream = new MemoryStream();
bmpDest.Save(memStream, ImageFormat.Jpeg);
return memStream.ToArray();
}
/// <summary>
/// Modifica la carátula de una película
/// Seguridad: Administradores
/// </summary>
/// <param name="caratula">Array de bytes con la imagen de la película</param>
/// <param name="codBarras">Código de barras de la película</param>
[PrincipalPermission(SecurityAction.Demand, Authenticated = true, Role = "Admin")]
public void ModificarCaratula(byte[] caratula, string codBarras)
{
PeliculasAD peliculasAD = new PeliculasAD();
peliculasAD.ModificarCaratula(caratula, codBarras);
}
#endregion
}
}