/// <summary> /// Async Process /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override Task <HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MAE_OBT_AutenticarUsuario")) { svc.Parameters.Add("USUA_NombreUsuario", Model.username); svc.Parameters.Add("USUA_Contrasena", Gale.Security.Cryptography.MD5.GenerateHash(Model.password)); Gale.Db.EntityRepository rep = this.ExecuteQuery(svc); Models.User user = rep.GetModel <Models.User>(0).FirstOrDefault(); Gale.Db.EntityTable <Models.Profile> profiles = rep.GetModel <Models.Profile>(1); //------------------------------------------------------------------------------------------------------------------------ //GUARD EXCEPTION Gale.Exception.RestException.Guard(() => user == null, "USERNAME_OR_PASSWORD_INCORRECT", Resources.Security.ResourceManager); //------------------------------------------------------------------------------------------------------------------------ List <System.Security.Claims.Claim> claims = new List <System.Security.Claims.Claim>(); claims.Add(new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Email, user.email)); claims.Add(new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.PrimarySid, user.token.ToString())); claims.Add(new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Name, user.fullname)); claims.Add(new System.Security.Claims.Claim("photo", user.photo.ToString())); profiles.ForEach((perfil) => { claims.Add(new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Role, perfil.identifier)); }); int expiration = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["Gale:Security:TokenTmeout"]); //RETURN TOKEN return(Task.FromResult(_request.CreateResponse <Gale.Security.Oauth.Jwt.Wrapper>( Gale.Security.Oauth.Jwt.Manager.CreateToken(claims, DateTime.Now.AddMinutes(expiration)) ))); } }
/// <summary> /// Async Process /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("[PA_MOT_OBT_Ruta]")) { svc.Parameters.Add("USUA_Token", HttpContext.Current.User.PrimarySid()); svc.Parameters.Add("RUTA_Token", this.Model); Gale.Db.EntityRepository rep = this.ExecuteQuery(svc); Models.Route route = rep.GetModel <Models.Route>().FirstOrDefault(); Models.SocialRoute socialRoute = rep.GetModel <Models.SocialRoute>().FirstOrDefault(); List <Models.Coordinates> coords = rep.GetModel <Models.Coordinates>(1); List <Models.RoutePhoto> photos = rep.GetModel <Models.RoutePhoto>(2); //---------------------------------------------------------------------------------------------------- //Create Response var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK) { Content = new ObjectContent <Object>( new { details = route, coordinates = coords, social = socialRoute, photos = photos }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.KqlFormatter() ) }; //Return Task return(Task.FromResult(response)); //---------------------------------------------------------------------------------------------------- } }
public override Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(string token, System.Threading.CancellationToken cancellationToken) { Gale.Exception.RestException.Guard(() => token == null, "BODY_EMPTY", API.Resources.Errors.ResourceManager); using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_DEL_PAGO")) { var tokenResponse = Guid.NewGuid(); var tokenusuario = HttpContext.Current.User.PrimarySid(); svc.Parameters.Add("Token", token); svc.Parameters.Add("TokenUsuario", tokenusuario); tokenResponse = (Guid)this.ExecuteScalar(svc); return(Task.FromResult(new HttpResponseMessage() { Content = new ObjectContent <Object>(new { tokenResponse = tokenResponse }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.JsonFormatter), StatusCode = System.Net.HttpStatusCode.Created })); } }
/// <summary> /// Obtiene la foto del usuario /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override Task <HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { //------------------------------------------------------------------------------------------------------ // DB Execution using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MAE_OBT_ArchivoBinario")) { svc.Parameters.Add("ARCH_Token", _token); Gale.Db.EntityRepository rep = this.ExecuteQuery(svc); Models.FileData file = rep.GetModel <Models.FileData>().FirstOrDefault(); if (file == null) { return(Task.FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.NotFound))); } //Create Response var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK) { Content = new StreamContent(new System.IO.MemoryStream(file.binary.ToArray())), }; response.Headers.CacheControl = new System.Net.Http.Headers.CacheControlHeaderValue() { MaxAge = TimeSpan.FromMinutes(30) }; //Add Content-Type Header response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(file.contentType); return(Task.FromResult(response)); } //------------------------------------------------------------------------------------------------------ }
public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_UPD_USUARIO")) { var token = Guid.NewGuid(); svc.Parameters.Add("NAME", this.Model.NAME); svc.Parameters.Add("LASTNAME", this.Model.LASTNAME); svc.Parameters.Add("USERNAME", this.Model.USERNAME); svc.Parameters.Add("PASSWORD", Gale.Security.Cryptography.MD5.GenerateHash(this.Model.PASSWORD)); svc.Parameters.Add("MAIL", this.Model.MAIL); svc.Parameters.Add("TOKEN", this.Model.TOKEN); token = (Guid)this.ExecuteScalar(svc); return(Task.FromResult(new HttpResponseMessage() { Content = new ObjectContent <Object>(new { token = token }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.JsonFormatter), StatusCode = System.Net.HttpStatusCode.Created })); } }
/// <summary> /// Async Process /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MOT_CHK_Medallas")) { svc.Parameters.Add("USUA_Token", this.Model); svc.Parameters.Add("MECA_Identificador", _category); var rep = this.ExecuteQuery(svc); var details = rep.GetModel <Models.NewDetails>().FirstOrDefault(); var newMedals = rep.GetModel <Models.NewMedal>(1); //---------------------------------------------------------------------------------------------------- //Create Response var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK) { Content = new ObjectContent <Object>( new { details = details, medals = newMedals }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.KqlFormatter() ) }; //Return Task return(Task.FromResult(response)); //---------------------------------------------------------------------------------------------------- } }
public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_UPD_CLIENTE")) { var token = Guid.NewGuid(); svc.Parameters.Add("TOKEN", this.Model.TOKEN); svc.Parameters.Add("NAME", this.Model.NAME); svc.Parameters.Add("LASTNAME", this.Model.LASTNAME); svc.Parameters.Add("EMAIL", this.Model.EMAIL); svc.Parameters.Add("MOBILE", this.Model.MOBILE); svc.Parameters.Add("PHONE", this.Model.PHONE); svc.Parameters.Add("RUT", this.Model.RUT); svc.Parameters.Add("DV", this.Model.DV); token = (Guid)this.ExecuteScalar(svc); return(Task.FromResult(new HttpResponseMessage() { Content = new ObjectContent <Object>(new { token = token }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.JsonFormatter), StatusCode = System.Net.HttpStatusCode.Created })); } }
/// <summary> /// Async Process /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MOT_OBT_Escritorio")) { svc.Parameters.Add("USUA_Token", _user); svc.Parameters.Add("Rango", this.Model.range); svc.Parameters.Add("Fecha_Inicio", this.Model.start); svc.Parameters.Add("Fecha_Fin", this.Model.end); Gale.Db.EntityRepository rep = this.ExecuteQuery(svc); Models.Counters counters = rep.GetModel <Models.Counters>().FirstOrDefault(); List <Models.GraphItem> items = rep.GetModel <Models.GraphItem>(1); //---------------------------------------------------------------------------------------------------- //Create Response var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK) { Content = new ObjectContent <Object>( new { timestamp = DateTime.Now.ToString("s"), counters = counters, graph = items }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.JsonFormatter ) }; //Return Task return(Task.FromResult(response)); //---------------------------------------------------------------------------------------------------- } }
/// <summary> /// Async Process /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("[PA_MOT_OBT_MisRutas]")) { svc.Parameters.Add("USUA_Token", this.Model); svc.Parameters.Add("MarcaTiempo", _timestamp); Gale.Db.EntityRepository rep = this.ExecuteQuery(svc); List <Models.Route> items = rep.GetModel <Models.Route>(); DateTime stamp = items.Count > 0 ? items.Max((a) => a.createdAt) : _timestamp; //---------------------------------------------------------------------------------------------------- //Create Response var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK) { Content = new ObjectContent <Object>( new { timestamp = stamp, total = items.Count, items = items }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.KqlFormatter() //-> CAMEL_CASING RETRIEVE DIFERENT OBJECT =) ) }; //Return Task return(Task.FromResult(response)); //---------------------------------------------------------------------------------------------------- } }
/// <summary> /// Update User /// </summary> /// <param name="token"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public override Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(string token, System.Threading.CancellationToken cancellationToken) { //------------------------------------------------------------------------------------------------------ // GUARD EXCEPTIONS Gale.Exception.RestException.Guard(() => Model == null, "BODY_EMPTY", API.Errors.ResourceManager); Gale.Exception.RestException.Guard(() => Model.sport == String.Empty, "SPORT_EMPTY", API.Errors.ResourceManager); //------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------ // DB Execution using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MOT_UPD_Perfil")) { svc.Parameters.Add("USUA_Token", token); svc.Parameters.Add("TIDE_Identificador", Model.sport); if (Model.emergencyPhones != null) { svc.Parameters.Add("Telefonos", String.Join(",", Model.emergencyPhones)); } this.ExecuteAction(svc); } //------------------------------------------------------------------------------------------------------ HttpResponseMessage response = new HttpResponseMessage(System.Net.HttpStatusCode.PartialContent); return(Task.FromResult(response)); }
/// <summary> /// Async Process /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { //Check the Debug Access Token (Future Implementation) //http://stackoverflow.com/questions/8605703/how-to-verify-facebook-access-token //--------------------------------------------- //Get Stream Image from the User byte[] imageBytes = null; if (Model.image != null) { try { //Try to download the image var webClient = new WebClient(); imageBytes = webClient.DownloadData(Model.image); } catch { } } using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MOT_OBT_AutenticarUsuarioExterno")) { svc.Parameters.Add("USUA_NombreCompleto", Model.name); svc.Parameters.Add("USUA_Email", Model.email); svc.Parameters.Add("AEXT_Identificador", Model.id); svc.Parameters.Add("ARCH_Binario", imageBytes); svc.Parameters.Add("ARCH_Tamano", imageBytes.Length); svc.Parameters.Add("TIAU_Identificador", "gmail"); //Facebook Gale.Db.EntityRepository rep = this.ExecuteQuery(svc); Models.User user = rep.GetModel <Models.User>(0).FirstOrDefault(); Gale.Db.EntityTable <Models.Profile> profiles = rep.GetModel <Models.Profile>(1); //------------------------------------------------------------------------------------------------------------------------ //GUARD EXCEPTION Gale.Exception.RestException.Guard(() => user == null, "USERNAME_OR_PASSWORD_INCORRECT", Resources.Security.ResourceManager); //------------------------------------------------------------------------------------------------------------------------ List <System.Security.Claims.Claim> claims = new List <System.Security.Claims.Claim>(); claims.Add(new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Email, user.email)); claims.Add(new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.PrimarySid, user.token.ToString())); claims.Add(new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Name, user.fullname)); claims.Add(new System.Security.Claims.Claim("photo", user.photo.ToString())); profiles.ForEach((perfil) => { claims.Add(new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Role, perfil.identifier)); }); int expiration = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["Gale:Security:TokenTmeout"]); //RETURN TOKEN return(Task.FromResult(_request.CreateResponse <Gale.Security.Oauth.Jwt.Wrapper>( Gale.Security.Oauth.Jwt.Manager.CreateToken(claims, DateTime.Now.AddMinutes(expiration)) ))); } }
/// text public static Models.Config GetConfiguration(String NameConfiguration, Gale.Db.IDataActions dataActions) { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MAE_SEL_Configuracion")) { svc.Parameters.Add("@CONF_Nombre", NameConfiguration); Gale.Db.EntityRepository rep = dataActions.ExecuteQuery(svc); Models.Config result = rep.GetModel <Models.Config>().FirstOrDefault(); return(result); } }
/// <summary> /// Async Process /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MOT_OBT_Perfl")) { svc.Parameters.Add("USUA_Token", this.Model); Gale.Db.EntityRepository rep = this.ExecuteQuery(svc); Models.Account account = rep.GetModel <Models.Account>().FirstOrDefault(); List <Models.Role> roles = rep.GetModel <Models.Role>(1); Models.SocialProfile counter = rep.GetModel <Models.SocialProfile>(2).FirstOrDefault(); Models.PersonalData personal = rep.GetModel <Models.PersonalData>(3).FirstOrDefault(); Models.Sport sport = rep.GetModel <Models.Sport>(3).FirstOrDefault(); List <Models.EmergencyPhones> phones = rep.GetModel <Models.EmergencyPhones>(4); List <Models.Medal> medals = rep.GetModel <Models.Medal>(5); //---------------------------------------------------------------------------------------------------- //Guard Exception's Gale.Exception.RestException.Guard(() => account == null, "ACCOUNT_DONT_EXISTS", API.Errors.ResourceManager); //---------------------------------------------------------------------------------------------------- account.photo = (account.photo == System.Guid.Empty ? null : account.photo); if (personal != null) { personal.emergencyPhones = (from t in phones select t.phone).ToList(); } //---------------------------------------------------------------------------------------------------- //Create Response var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK) { Content = new ObjectContent <Object>( new { account = account, roles = roles, sport = sport, personal = personal, social = counter, medals = medals }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.KqlFormatter() ) }; //Return Task return(Task.FromResult(response)); //---------------------------------------------------------------------------------------------------- } }
/// text public static Models.Config GetConfiguration(Nullable <Guid> token, Gale.Db.IDataActions dataActions) { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MAE_SEL_Configuracion")) { if (token != null) { svc.Parameters.Add("@DOCU_Token", token); } svc.Parameters.Add("@CONF_Nombre", DBNull.Value); Gale.Db.EntityRepository rep = dataActions.ExecuteQuery(svc); Models.Config result = rep.GetModel <Models.Config>().FirstOrDefault(); return(result); } }
public override Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(string token, System.Threading.CancellationToken cancellationToken) { Gale.Exception.RestException.Guard(() => token == null, "BODY_EMPTY", API.Resources.Errors.ResourceManager); using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_DEL_CLIENTE")) { svc.Parameters.Add("Token", token); this.ExecuteAction(svc); } HttpResponseMessage response = new HttpResponseMessage(System.Net.HttpStatusCode.OK); return(Task.FromResult(response)); }
public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_SGR_MOD_Contratos")) { svc.Parameters.Add("token", this.Model.token); svc.Parameters.Add("tokenNivel", this.Model.tokenNivelOrranizacional); svc.Parameters.Add("tokenEmpresa", this.Model.tokenEmpresa); svc.Parameters.Add("nombre", this.Model.nombre); svc.Parameters.Add("descripcion", this.Model.descripcion); svc.Parameters.Add("codigoContrato", this.Model.codigo); this.ExecuteScalar(svc); return(Task.FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.OK))); } }
/// <summary> /// Save Files into DB /// </summary> /// <param name="files"></param> /// <returns></returns> public override System.Net.Http.HttpResponseMessage SaveFiles(List<System.Net.Http.HttpContent> files) { List<Object> _files = new List<object>(); foreach (HttpContent file in files) { // You would get hold of the inner memory stream here System.IO.Stream stream = file.ReadAsStreamAsync().Result; using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MAE_INS_Archivo")) { string name = file.Headers.ContentDisposition.FileName.Replace("\"", ""); svc.Parameters.Add("ARCH_Nombre", name); svc.Parameters.Add("ARCH_Tamano", file.Headers.ContentLength); svc.Parameters.Add("ARCH_ContentType", file.Headers.ContentType.MediaType); svc.Parameters.Add("ARCH_Temporal", 1); svc.Parameters.Add("ARCH_Binario", stream); svc.Parameters.Add("ENTI_Token", _userID); System.Guid token = (System.Guid)this.ExecuteScalar(svc); _files.Add(new { token = token, name = name, length = file.Headers.ContentLength, md5 = Gale.Security.Cryptography.MD5.GenerateHash(stream), contentType = file.Headers.ContentType.MediaType, createdAt = DateTime.Now.ToString("s") }); } } //---------------------------------------------------------------------------- return new HttpResponseMessage(System.Net.HttpStatusCode.OK) { Content = new ObjectContent<Object>( _files, System.Web.Http.GlobalConfiguration.Configuration.Formatters.JsonFormatter ) }; //---------------------------------------------------------------------------- }
/// <summary> /// Async Process /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { //------------------------------------------------------------------------------------------------------ // GUARD EXCEPTIONS Gale.Exception.RestException.Guard(() => _latitude == null, "LATITUDE_EMPTY", API.Errors.ResourceManager); Gale.Exception.RestException.Guard(() => _longitude == null, "LONGITUDE_EMPTY", API.Errors.ResourceManager); Gale.Exception.RestException.Guard(() => _distance == null, "DISTANCE_EMPTY", API.Errors.ResourceManager); //------------------------------------------------------------------------------------------------------ using (Gale.Db.DataService svc = new Gale.Db.DataService("[PA_MOT_OBT_DescubrirRutas]")) { svc.Parameters.Add("USUA_Token", HttpContext.Current.User.PrimarySid()); svc.Parameters.Add("Nombre", _route); svc.Parameters.Add("Distancia", _distance); svc.Parameters.Add("Latitud", _latitude); svc.Parameters.Add("Longitud", _longitude); svc.Parameters.Add("RegistrosPorPagina", _limit); svc.Parameters.Add("RegistrosSaltados", _offset); Gale.Db.EntityRepository rep = this.ExecuteQuery(svc); Models.Pagination pagination = rep.GetModel<Models.Pagination>(0).FirstOrDefault(); List<Models.DiscoveredRoute> routes = rep.GetModel<Models.DiscoveredRoute>(1); //---------------------------------------------------------------------------------------------------- //Create Response var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK) { Content = new ObjectContent<Object>( new { offset = _offset, limit = _limit, total = pagination.total, items = routes }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.KqlFormatter() ) }; //Return Task return Task.FromResult(response); //---------------------------------------------------------------------------------------------------- } }
/// <summary> /// Async Process /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("[PA_MOT_UPD_MarcarNotificacionesComoLeidas]")) { svc.Parameters.Add("USUA_Token", this.Model); svc.Parameters.Add("MarcaTiempo", _timestamp); this.ExecuteAction(svc); //---------------------------------------------------------------------------------------------------- //Create Response var response = new HttpResponseMessage(System.Net.HttpStatusCode.PartialContent); //Return Task return(Task.FromResult(response)); //---------------------------------------------------------------------------------------------------- } }
/// <summary> /// Async Process /// </summary> /// <param name="token"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public override Task <HttpResponseMessage> ExecuteAsync(string token, System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("[PA_MOT_ELM_MeGustaRuta]")) { svc.Parameters.Add("ENTI_Token", token); svc.Parameters.Add("RUTA_Token", this.Model); this.ExecuteAction(svc); //---------------------------------------------------------------------------------------------------- //Create Response var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK); //Return Task return(Task.FromResult(response)); //---------------------------------------------------------------------------------------------------- } }
/// <summary> /// Save Files into DB /// </summary> /// <param name="files"></param> /// <returns></returns> public override System.Net.Http.HttpResponseMessage SaveFiles(List <System.Net.Http.HttpContent> files) { List <Object> _files = new List <object>(); foreach (HttpContent file in files) { // You would get hold of the inner memory stream here System.IO.Stream stream = file.ReadAsStreamAsync().Result; using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MAE_INS_Archivo")) { string name = file.Headers.ContentDisposition.FileName.Replace("\"", ""); svc.Parameters.Add("ARCH_Nombre", name); svc.Parameters.Add("ARCH_Tamano", file.Headers.ContentLength); svc.Parameters.Add("ARCH_ContentType", file.Headers.ContentType.MediaType); svc.Parameters.Add("ARCH_Temporal", 1); svc.Parameters.Add("ARCH_Binario", stream); svc.Parameters.Add("ENTI_Token", _userID); System.Guid token = (System.Guid) this.ExecuteScalar(svc); _files.Add(new { token = token, name = name, length = file.Headers.ContentLength, md5 = Gale.Security.Cryptography.MD5.GenerateHash(stream), contentType = file.Headers.ContentType.MediaType, createdAt = DateTime.Now.ToString("s") }); } } //---------------------------------------------------------------------------- return(new HttpResponseMessage(System.Net.HttpStatusCode.OK) { Content = new ObjectContent <Object>( _files, System.Web.Http.GlobalConfiguration.Configuration.Formatters.JsonFormatter ) }); //---------------------------------------------------------------------------- }
/// <summary> /// Async Process /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { //------------------------------------------------------------------------------------------------------ // GUARD EXCEPTIONS Gale.Exception.RestException.Guard(() => _latitude == null, "LATITUDE_EMPTY", API.Errors.ResourceManager); Gale.Exception.RestException.Guard(() => _longitude == null, "LONGITUDE_EMPTY", API.Errors.ResourceManager); Gale.Exception.RestException.Guard(() => _distance == null, "DISTANCE_EMPTY", API.Errors.ResourceManager); //------------------------------------------------------------------------------------------------------ using (Gale.Db.DataService svc = new Gale.Db.DataService("[PA_MOT_OBT_DescubrirRutas]")) { svc.Parameters.Add("USUA_Token", HttpContext.Current.User.PrimarySid()); svc.Parameters.Add("Nombre", _route); svc.Parameters.Add("Distancia", _distance); svc.Parameters.Add("Latitud", _latitude); svc.Parameters.Add("Longitud", _longitude); svc.Parameters.Add("RegistrosPorPagina", _limit); svc.Parameters.Add("RegistrosSaltados", _offset); Gale.Db.EntityRepository rep = this.ExecuteQuery(svc); Models.Pagination pagination = rep.GetModel <Models.Pagination>(0).FirstOrDefault(); List <Models.DiscoveredRoute> routes = rep.GetModel <Models.DiscoveredRoute>(1); //---------------------------------------------------------------------------------------------------- //Create Response var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK) { Content = new ObjectContent <Object>( new { offset = _offset, limit = _limit, total = pagination.total, items = routes }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.KqlFormatter() ) }; //Return Task return(Task.FromResult(response)); //---------------------------------------------------------------------------------------------------- } }
public override Task<HttpResponseMessage> ExecuteAsync(string token, CancellationToken cancellationToken) { //------------------------------------------------ // Guard's Gale.Exception.RestException.Guard(() => token == null, "EMPTY_EVENT", API.Errors.ResourceManager); Gale.Exception.RestException.Guard(() => String.IsNullOrEmpty(_user), "EMPTY_USER", API.Errors.ResourceManager); using (var svc = new Gale.Db.DataService("SP_DEL_LeftEvent")) { svc.Parameters.Add("USR_Token", _user); svc.Parameters.Add("EVN_Token", token); this.ExecuteAction(svc); return Task.FromResult(new HttpResponseMessage() { StatusCode = System.Net.HttpStatusCode.OK }); } }
public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_INS_ANTECEDENTES_CASO")) { var token = Guid.NewGuid(); svc.Parameters.Add("DESCRIPCION", this.Model.DESCRIPTION); svc.Parameters.Add("TOKEN", this.Model.CASETOKEN); token = (Guid)this.ExecuteScalar(svc); return(Task.FromResult(new HttpResponseMessage() { Content = new ObjectContent <Object>(new { token = token }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.JsonFormatter), StatusCode = System.Net.HttpStatusCode.Created })); } }
/// <summary> /// Async Process /// </summary> /// <param name="token">Route to Share</param> /// <param name="cancellationToken"></param> /// <returns></returns> public override Task <HttpResponseMessage> ExecuteAsync(string token, System.Threading.CancellationToken cancellationToken) { //------------------------------------------------------------------------------------------------------ // GUARD EXCEPTIONS Gale.Exception.RestException.Guard(() => Model == null, "BODY_EMPTY", API.Errors.ResourceManager); Gale.Exception.RestException.Guard(() => Model.name == null, "EMPTY_NAME", API.Errors.ResourceManager); //------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------ // DB Execution try { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MOT_UPD_CompartirRuta")) { svc.Parameters.Add("ENTI_Token", HttpContext.Current.User.PrimarySid()); svc.Parameters.Add("RUTA_Token", token); svc.Parameters.Add("RUCO_Nombre", Model.name); svc.Parameters.Add("RUCO_Observaciones", Model.observation); this.ExecuteAction(svc); } } catch (Gale.Exception.SqlClient.CustomDatabaseException ex) { //50001 ROUTE_DONT_EXISTS throw new Gale.Exception.RestException(ex.Message, null); } catch { throw new Gale.Exception.RestException("CANT_SHARE_ROUTE", null); } //------------------------------------------------------------------------------------------------------ HttpResponseMessage response = new HttpResponseMessage(System.Net.HttpStatusCode.PartialContent); return(Task.FromResult(response)); }
public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_SGR_INS_Contratos")) { var token = Guid.NewGuid(); svc.Parameters.Add("tokenNivel", this.Model.tokenNivelOrranizacional); svc.Parameters.Add("tokenEmpresa", this.Model.tokenEmpresa); svc.Parameters.Add("nombre", this.Model.nombre); svc.Parameters.Add("descripcion", this.Model.descripcion); svc.Parameters.Add("codigoContrato", this.Model.codigo); token = (Guid)this.ExecuteScalar(svc); return(Task.FromResult(new HttpResponseMessage() { Content = new ObjectContent <Object>(new { token = token }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.JsonFormatter), StatusCode = System.Net.HttpStatusCode.Created })); } }
/// <summary> /// Async Process /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { //------------------------------------------------------------------------------------------------------ // GUARD EXCEPTIONS Gale.Exception.RestException.Guard(() => Model == null, "BODY_EMPTY", API.Errors.ResourceManager); Gale.Exception.RestException.Guard(() => Model.photo == null, "IMAGE_EMPTY", API.Errors.ResourceManager); //------------------------------------------------------------------------------------------------------ System.Guid imageToken = System.Guid.Empty; byte[] data = System.Convert.FromBase64String(Model.photo); //------------------------------------------------------------------------------------------------------ // DB Execution using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MOT_INS_ImagenRuta")) { svc.Parameters.Add("ENTI_Token", HttpContext.Current.User.PrimarySid()); svc.Parameters.Add("RUTA_Token", _route); svc.Parameters.Add("ARCH_Binario", data); svc.Parameters.Add("ARCH_Tamano", data.Length); imageToken = (System.Guid) this.ExecuteScalar(svc); } //------------------------------------------------------------------------------------------------------ HttpResponseMessage response = new HttpResponseMessage(System.Net.HttpStatusCode.Created) { Content = new ObjectContent <Object>( new { token = imageToken }, System.Web.Http.GlobalConfiguration.Configuration.Formatters.JsonFormatter ) }; return(Task.FromResult(response)); }
/// <summary> /// Obtiene la foto del usuario /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override Task<HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { //------------------------------------------------------------------------------------------------------ // DB Execution using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MAE_OBT_ArchivoBinario")) { svc.Parameters.Add("ARCH_Token", _token); Gale.Db.EntityRepository rep = this.ExecuteQuery(svc); Models.FileData file = rep.GetModel<Models.FileData>().FirstOrDefault(); if (file == null) { return Task.FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.NotFound)); } //Create Response var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK) { Content = new StreamContent(new System.IO.MemoryStream(file.binary.ToArray())), }; response.Headers.CacheControl = new System.Net.Http.Headers.CacheControlHeaderValue() { MaxAge = TimeSpan.FromMinutes(30) }; //Add Content-Type Header response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(file.contentType); return Task.FromResult(response); } //------------------------------------------------------------------------------------------------------ }
public Gale.Db.EntityRepository ExecuteQuery(Gale.Db.DataService Service, int CommandTimeout) { return(Connection.ExecuteQuery(Service, CommandTimeout)); }
public override Task <HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { Gale.Exception.GaleException.Guard(() => this.modelType == null, System.Net.HttpStatusCode.BadRequest, "API_EMPTY_BODY"); SortedDictionary <string, object> values = new SortedDictionary <string, object>(); var table_name = this.modelType.Name; #region BIND DATA var fieldProperties = typeof(TModel).GetProperties().Where(prop => Attribute.IsDefined(prop, typeof(System.Data.Linq.Mapping.ColumnAttribute))).ToList(); foreach (System.Reflection.PropertyInfo property in fieldProperties) { string db_name = property.Name; object value = null; if (property.GetValue(_payload) == null) { continue; } var attr = property.TryGetAttribute <System.Data.Linq.Mapping.ColumnAttribute>(); if (attr != null) { System.Data.Linq.Mapping.ColumnAttribute column_attr = (attr as System.Data.Linq.Mapping.ColumnAttribute); if (column_attr != null && column_attr.Name != null && column_attr.Name.Length > 0) { db_name = column_attr.Name; } } try { value = property.GetValue(_payload); } catch /*(System.Reflection.TargetInvocationException ex)*/ { throw new Gale.Exception.GaleException("API_CANT_SETVALUE", property.Name, table_name); } //Add as Data Value values.Add(db_name, value); } #endregion var table_attr = this.modelType.TryGetAttribute <System.Data.Linq.Mapping.TableAttribute>(); if (table_attr != null && table_attr.Name != null && table_attr.Name.Length > 0) { table_name = table_attr.Name; } #region SQL Builder /* * * BEGIN * DECLARE @TABLE_NAME VARCHAR(200) = '{TABLE}'; * DECLARE @OBJECT_ID INT = (SELECT object_id FROM sys.all_objects WHERE type_desc = 'USER_TABLE' AND name = @TABLE_NAME); * DECLARE @COUNT INT= (SELECT COUNT(*) FROM sys.identity_columns WHERE object_id = @OBJECT_ID); * * INSERT INTO TABLE ( * {FIELD} * ) VALUES ( * {VALUE} * ); * * IF(@COUNT = 1) * BEGIN * DECLARE @IDENTITY_COLUMN SYSNAME; * SELECT TOP 1 * @IDENTITY_COLUMN = name * FROM * sys.identity_columns WHERE object_id = @OBJECT_ID; * * DECLARE @GETLASTROWINSERTED NVARCHAR(4000) = 'SELECT ' + @TABLE_NAME + '.* FROM ' + @TABLE_NAME + ' WHERE ' + @IDENTITY_COLUMN + ' = ' + CONVERT(VARCHAR(200), SCOPE_IDENTITY()); * EXECUTE sp_executesql @GETLASTROWINSERTED; * END * ELSE * RAISERROR ('MORE_THAN_ONE_PK',12,1); * * END * * */ System.Text.StringBuilder builder = new StringBuilder(); builder.AppendFormat("INSERT INTO {0} ", table_name); builder.AppendFormat("( \n"); bool isFirst = true; foreach (var value in values) { if (!isFirst) { builder.Append(","); } builder.AppendFormat("{0} \n", value.Key); isFirst = false; } builder.Append(") VALUES ( \n"); isFirst = true; foreach (var value in values) { if (!isFirst) { builder.Append(","); } builder.AppendFormat("'{0}' \n", value.Value); isFirst = false; } builder.Append("); \n\n"); string single_tableName = table_name.Substring(table_name.IndexOf(".") + 1); //GET COUNT FROM IDENTITY COLUMNS FOR A SPECIFIC TABLE builder.AppendFormat("SELECT \n"); builder.AppendFormat(" COUNT(*) \n"); builder.AppendFormat("FROM \n"); builder.AppendFormat(" sys.identity_columns IDENT INNER JOIN \n"); builder.AppendFormat(" sys.all_objects TBLES ON IDENT.object_id = TBLES.object_id \n"); builder.AppendFormat(" AND type_desc = 'USER_TABLE' \n"); builder.AppendFormat(" AND TBLES.name = '{0}'; \n\n", single_tableName); //GET THE LAST INSERTED ROW (ONLY WORKS FOR A SINGLE PRIMARY KEY COLUMN) builder.AppendFormat("SELECT TOP 1 \n"); builder.AppendFormat(" IDENT.name \n"); builder.AppendFormat("FROM \n"); builder.AppendFormat(" sys.identity_columns IDENT INNER JOIN \n"); builder.AppendFormat(" sys.all_objects TBLES ON IDENT.object_id = TBLES.object_id \n"); builder.AppendFormat(" AND type_desc = 'USER_TABLE' \n"); builder.AppendFormat(" AND TBLES.name = '{0}' ", single_tableName); string query = builder.ToString(); #endregion //------------------------------------------------------------------------------------- //---[ DATABASE CALL using (Gale.Db.DataService svc = new Gale.Db.DataService(query)) { try { //Create the repository this.ExecuteSql(svc); HttpResponseMessage response = new HttpResponseMessage(System.Net.HttpStatusCode.Created) { Content = new StringContent("Created") }; return(Task.FromResult(response)); } catch (System.Exception ex) { string message = ex.InnerException != null ? ex.InnerException.Message : ex.Message; throw new Gale.Exception.GaleException("API_DB_ERROR", message); } } //------------------------------------------------------------------------------------- }
public void ExecuteAction(Gale.Db.DataService Service) { Connection.ExecuteAction(Service); }
public void ExecuteAction(Gale.Db.DataService Service, int CommandTimeout) { Connection.ExecuteAction(Service, CommandTimeout); }
public override Task <HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken) { Gale.Exception.GaleException.Guard(() => _payload == null, System.Net.HttpStatusCode.BadRequest, "API_EMPTY_BODY"); var table_type = typeof(TModel); SortedDictionary <string, object> values = new SortedDictionary <string, object>(); string table_name = table_type.Name; string primaryKey_name = null; #region BIND DATA var fieldProperties = typeof(TModel).GetProperties().Where(prop => Attribute.IsDefined(prop, typeof(System.Data.Linq.Mapping.ColumnAttribute))).ToList(); foreach (System.Reflection.PropertyInfo property in fieldProperties) { string db_name = property.Name; object value = null; var attr = property.TryGetAttribute <System.Data.Linq.Mapping.ColumnAttribute>(); if (attr != null) { System.Data.Linq.Mapping.ColumnAttribute column_attr = (attr as System.Data.Linq.Mapping.ColumnAttribute); if (column_attr != null && column_attr.Name != null && column_attr.Name.Length > 0) { db_name = column_attr.Name; if (column_attr.IsPrimaryKey) { primaryKey_name = db_name; continue; } } } if (property.GetValue(_payload) == null) { continue; } try { value = property.GetValue(_payload); } catch /*(System.Reflection.TargetInvocationException ex)*/ { throw new Gale.Exception.GaleException("API_CANT_SETVALUE", property.Name, table_name); } //Add as Data Value values.Add(db_name, value); } #endregion var table_attr = table_type.TryGetAttribute <System.Data.Linq.Mapping.TableAttribute>(); if (table_attr != null && table_attr.Name != null && table_attr.Name.Length > 0) { table_name = table_attr.Name; } #region SQL Builder System.Text.StringBuilder builder = new StringBuilder(); builder.AppendFormat("UPDATE {0} ", table_name); builder.AppendFormat(" SET"); bool isFirst = true; foreach (var value in values) { if (!isFirst) { builder.Append(","); } builder.AppendFormat(" {0} = '{1}'", value.Key, value.Value.ToString()); isFirst = false; } builder.AppendFormat(" WHERE"); builder.AppendFormat(" {0} = '{1}'", primaryKey_name, this.id); string query = builder.ToString(); #endregion //------------------------------------------------------------------------------------- //---[ DATABASE CALL using (Gale.Db.DataService svc = new Gale.Db.DataService(query)) { try { //Create the repository this.ExecuteSql(svc); HttpResponseMessage response = new HttpResponseMessage(System.Net.HttpStatusCode.PartialContent) { Content = new StringContent("Updated") }; return(Task.FromResult(response)); } catch (System.Exception ex) { string message = ex.InnerException != null ? ex.InnerException.Message : ex.Message; throw new Gale.Exception.GaleException("API_DB_ERROR", message); } } //------------------------------------------------------------------------------------- }
private Result _Execute(String query, Gale.Db.IDataActions databaseFactory) { System.Diagnostics.Stopwatch timer = new System.Diagnostics.Stopwatch(); timer.Start(); //------------------------------------------------------------------------------------- //---[ DATABASE CALL using (Gale.Db.DataService svc = new Gale.Db.DataService(query)) { System.Data.DataTable db_data = null; System.Data.DataTable db_pagination = null; Gale.Db.EntityRepository rep = null; try { //Create the repository rep = this.DatabaseFactory.ExecuteSql(svc); db_data = rep.GetRawTable(0); db_pagination = rep.GetRawTable(1); } catch (System.Exception ex) { string message = ex.InnerException != null ? ex.InnerException.Message : ex.Message; throw new Gale.Exception.GaleException("API_DB_ERROR", message); } //--------[ GET ALL DATA IN AN ARRAY var data = new List <List <Object> >(); SortedList <int, Field> ordinalsFields = new SortedList <int, Field>(); var columns_count = db_data.Columns.Count; #region ORDINAL COLUMN SEARCH //SEARCH FOR ORDINAL'S foreach (Field field in _reflectedModel.SelectedFields) { for (var column_index = 0; column_index < columns_count; column_index++) { if (field.Key.ToLower() == db_data.Columns[column_index].ColumnName.ToLower()) { ordinalsFields.Add(db_data.Columns[column_index].Ordinal, field); break; } } } #endregion if (db_pagination.Rows.Count != 1) { throw new Gale.Exception.GaleException("API003"); } int total = Convert.ToInt32(db_pagination.Rows[0]["total"]); #region TABLE FORMAT //Save all data from the foreign table for the descriptor's SortedList <Type, Gale.Db.IEntityTable> _foreignTableDatas = new SortedList <Type, Gale.Db.IEntityTable>(); //Starting Fetching Data for (var row_index = 0; row_index < db_data.Rows.Count; row_index++) { List <Object> item = new List <Object>(); foreach (int ordinal in ordinalsFields.Keys) { Field field = ordinalsFields[ordinal]; Object db_value = db_data.Rows[row_index][ordinal]; if (db_value is DateTime) { db_value = DateTime.SpecifyKind((DateTime)db_value, DateTimeKind.Local); } //If is FK , try to get the Descriptor, if not have descriptor, send Encripted Value :S if (field.Specification == Field.SpecificationEnum.Fk) { Table table = _reflectedModel.Constraints.First(constraint => constraint.ThisField == field).Table; if (table.Descriptor != null) { Gale.Db.IEntityTable tableData; _foreignTableDatas.TryGetValue(table.Type, out tableData); #region CREATE DATA TABLE FROM THE CURRENT SOURCE IF NOT EXIST YET if (tableData == null) { //Create Constraint Table Data System.Reflection.MethodInfo baseMethod = (from t in rep.GetType().GetMethods() where t.GetGenericArguments().Count() > 0 && t.Name == "GetModel" && t.GetParameters().Count() == 0 select t).FirstOrDefault(); System.Reflection.MethodInfo GetModelMethod = baseMethod.MakeGenericMethod(table.Type); tableData = (Gale.Db.IEntityTable)GetModelMethod.Invoke(rep, null); _foreignTableDatas.Add(table.Type, tableData); } #endregion //GET Constraint Function Expression to Get the FK Descriptor Object _item = tableData.GetType().GetMethod("get_Item").Invoke(tableData, new object[] { row_index }); db_value = table.Descriptor.DynamicInvoke(_item).ToString(); } } item.Add(db_value); //Column Value } data.Add(item); } #endregion timer.Stop(); var response = new Gale.REST.Queryable.Primitive.Result(total, timer.Elapsed, _reflectedModel.SelectedFields, data); return(response); } //------------------------------------------------------------------------------------- }