public KendoResponse RequesterHistory([FromBody] KendoRequest req, string msisdn) { List <Request> swaprequests = new List <Request>(); var order = "DateSubmitted"; KendoHelper.getSortOrder(req, ref order); var parameters = new List <object>(); var whereClause = KendoHelper.getWhereClause <Subscriber>(req, parameters); swaprequests = _dbhelper.GetRequesterHistory(msisdn); var query = swaprequests.OrderBy(p => p.Id).AsQueryable(); if (req != null && req.sort != null && req.sort.Any()) { var sort = req.sort.First(); if (sort.dir != "asc") { } } var data = query .Skip(req.skip) .Take(req.take) .ToArray(); return(new KendoResponse(data, query.Count())); }
public KendoResponse GetAllUsers([FromBody] KendoRequest req) { List <User> users = new List <User> { }; var order = "UserId"; KendoHelper.getSortOrder(req, ref order); var parameters = new List <object>(); var whereClause = KendoHelper.getWhereClause <Subscriber>(req, parameters); users = _dbhelper.GetUsers(); var query = users.OrderBy(p => p.UserId).AsQueryable(); if (req != null && req.sort != null && req.sort.Any()) { var sort = req.sort.First(); if (sort.dir != "asc") { } } var data = query .Skip(req.skip) .Take(req.take) .ToArray(); return(new KendoResponse(data, query.Count())); }
public KendoResponse GetSimSwapRequestsByUser([FromBody] KendoRequest req, int userid) { List <SimSwapRequests> swaprequests = new List <SimSwapRequests>(); var order = "Id"; KendoHelper.getSortOrder(req, ref order); var parameters = new List <object>(); var whereClause = KendoHelper.getWhereClause <Subscriber>(req, parameters); swaprequests = _dbhelper.GetSimSwapRequestByUser(userid); var query = swaprequests.OrderBy(p => p.Id).AsQueryable(); if (req != null && req.sort != null && req.sort.Any()) { var sort = req.sort.First(); if (sort.dir != "asc") { } } var data = query .Skip(req.skip) .Take(req.take) .ToArray(); return(new KendoResponse(data, query.Count())); }
public static async Task <string> getWhereClauseAsync <T>(KendoRequest req, List <object> parameters) { string whereClause = null; if (req.filter != null && (req.filter.filters != null && req.filter.filters.Count > 0)) { var filters = req.filter.filters; for (var i = 0; i < filters.Count; i++) { if (i == 0) { whereClause += string.Format(" {0}", BuildWhereClauseAsync <T>(i, req.filter.logic, filters[i], parameters)); } else { whereClause += string.Format(" {0} {1}", await ToLinqOperatorAsync(req.filter.logic), await BuildWhereClauseAsync <T>(i, req.filter.logic, filters[i], parameters)); } } } return(whereClause); }
// GET: api/KendoAccounts //public KendoResponse GetAccounts() //{ // var total = db.Accounts.Count(); // object[] data = db.Accounts.ToArray<object>(); // return new KendoResponse(total, data); //} // GET: api/KendoAccounts public KendoResponse GetAccounts([FromUri] KendoRequest kendoRequest) { IQueryable <Account> accounts = db.Accounts; // total count var total = db.Accounts.Count(); // filtering if (kendoRequest.filter != null && kendoRequest.filter.Filters != null && kendoRequest.filter.Filters.Count() > 0) { IEnumerable <DataFilter> filters = kendoRequest.filter.Filters; string strWhere = string.Empty; foreach (var f in filters) { string whereFormat = DataFilterOperators.Operators[f.Operator]; if (!string.IsNullOrEmpty(whereFormat)) { accounts = accounts.Where(string.Format(whereFormat, f.Field, f.Value)); } } } // sorting string strOrderBy = string.Empty; if (kendoRequest.sort != null && kendoRequest.sort.Length > 0) { foreach (var s in kendoRequest.sort) { strOrderBy += string.Format("{0} {1},", s.Field, s.Dir); } if (strOrderBy.Length > 0 && strOrderBy.EndsWith(",")) { strOrderBy = strOrderBy.Remove(strOrderBy.Length - 1); //Removing last comma } } if (strOrderBy == string.Empty) { strOrderBy = "1"; //Sort Noting } var sortedAccounts = accounts.OrderBy(strOrderBy); // filtereding // take single page data if (kendoRequest.take == 0) { kendoRequest.take = total; } object[] data = sortedAccounts.Skip(kendoRequest.skip).Take(kendoRequest.take).ToArray <object>(); return(new KendoResponse(total, data)); }
public KendoResponse GetServerReport([FromBody] KendoRequest req, int serverid) { List <ServerReport> report = new List <ServerReport>() { }; report = DbHelper.Instance.GetServerReport(serverid); var query = report.AsQueryable(); var data = query.ToArray(); return(new KendoResponse(data, query.Count())); }
public static void getSortOrder(KendoRequest req, ref string order) { // order the results if (req.sort != null && req.sort.Count > 0) { List <string> sorts = new List <string>(); req.sort.ForEach(x => { sorts.Add(string.Format("{0} {1}", x.field, x.dir)); }); order = string.Join(",", sorts.ToArray()); } }
// GET: api/KendoInlineChannelGroup public IHttpActionResult GetKendoInlineChannelGroup([FromUri] KendoRequest kendoRequest) { IQueryable <Object> channelGroups = from m in db.ChannelGroups select m; channelGroups = channelGroups.Include("EngineType"); // filtering if (kendoRequest.filter != null && kendoRequest.filter.Filters != null && kendoRequest.filter.Filters.Count() > 0) { IEnumerable <DataFilter> filters = kendoRequest.filter.Filters; string strWhere = string.Empty; foreach (var f in filters) { string whereFormat = DataFilterOperators.Operators[f.Operator]; if (!string.IsNullOrEmpty(whereFormat)) { channelGroups = channelGroups.Where(string.Format(whereFormat, f.Field, f.Value)); } } } // sorting string strOrderBy = string.Empty; if (kendoRequest.sort != null && kendoRequest.sort.Length > 0) { foreach (var s in kendoRequest.sort) { strOrderBy += string.Format("{0} {1},", s.Field, s.Dir); } if (strOrderBy.Length > 0 && strOrderBy.EndsWith(",")) { strOrderBy = strOrderBy.Remove(strOrderBy.Length - 1); //Removing last comma } } if (strOrderBy == string.Empty) { strOrderBy = "1"; //Sort Noting } var sortedChannelGroups = channelGroups.OrderBy(strOrderBy); sortedChannelGroups = sortedChannelGroups.Skip(kendoRequest.skip).Take(kendoRequest.take); return(Ok(sortedChannelGroups)); }
// GET: api/KendoVessels public async Task <KendoResponse> GetVessels([FromUri] KendoRequest kendoRequest) { int readLevel = Util.GetResourcePermission("Vessel", Util.ReourceOperations.Read); if (readLevel == 0) { return(new KendoResponse(0, null)); } User currentUser = Util.GetCurrentUser(); List <VesselView> vessels = await( from v in db.Vessels join oa in db.Accounts on(v.OwnerAccount != null ? v.OwnerAccount.Id : Guid.Empty) equals oa.Id into v_oa join opa in db.Accounts on(v.OperatorAccount != null ? v.OperatorAccount.Id : Guid.Empty) equals opa.Id into v_opa join st in db.ShipTypes on(v.ShipType != null ? v.ShipType.Id : Guid.Empty) equals st.Id into v_st join sc in db.ShipClasses on(v.ShipClass != null ? v.ShipClass.Id : Guid.Empty) equals sc.Id into v_sc join c in db.Countries on(v.Country != null ? v.Country.Id : Guid.Empty) equals c.Id into v_c where // Login user is from Owing company ((v.OwnerID == currentUser.AccountID && readLevel == Util.AccessLevel.Own)) || // Login user is from Operating company ((v.OperatorID == currentUser.AccountID && readLevel == Util.AccessLevel.Own)) || // Admin user readLevel == Util.AccessLevel.All orderby v.VesselName ascending select new VesselView { Id = v.Id, IMO_No = v.IMO_No, VesselName = v.VesselName, OwnerID = v.OwnerID, OperatorID = v.OperatorID, ShipTypeID = v.ShipTypeID, ShipyardName = v.ShipyardName, ShipyardCountry = v.ShipyardCountry, BuildYear = v.BuildYear, DeliveryToOwner = v.DeliveryToOwner, ShipClassID = v.ShipTypeID, DWT = v.DWT, TotalPropulsionPower = v.TotalPropulsionPower, TotalGeneratorPower = v.TotalGeneratorPower, Status = v.Status, CreatedBy = v.CreatedBy, CreatedOn = v.CreatedOn, ModifiedBy = v.ModifiedBy, ModifiedOn = v.ModifiedOn, OperatorAccountId = (v.OperatorAccount != null ? v.OperatorAccount.Id : Guid.Empty), OperatorAccountName = (v.OperatorAccount != null ? v.OperatorAccount.Name : String.Empty), OwnerAccountId = (v.OwnerAccount != null ? v.OwnerAccount.Id : Guid.Empty), OwnerAccountName = (v.OwnerAccount != null ? v.OwnerAccount.Name : String.Empty), CountryId = (v.Country != null ? v.Country.Id : Guid.Empty), CountryName = (v.Country != null ? v.Country.Name : String.Empty), ShipClassId = (v.ShipClass != null ? v.ShipClass.Id : Guid.Empty), ShipClassName = (v.ShipClass != null ? v.ShipClass.Name : String.Empty), ShipTypeId = (v.ShipType != null ? v.ShipType.Id : Guid.Empty), ShipTypeName = (v.ShipType != null ? v.ShipType.Name : String.Empty) } ).ToListAsync(); foreach (var item in vessels) { item.Engines = await db.Engines .Include("EngineType") .Where(e => e.VesselID == item.Id) .OrderBy(e => e.SerialNo) .Select(e => new EngineView { Id = e.Id, SerialNo = e.SerialNo, EngineType = e.EngineType, Side = e.Side }) .ToListAsync(); foreach (var e in item.Engines) { DateTime today = Util.GetToday(); DateTime endOfToday = today.AddDays(1).AddMilliseconds(-1); e.Alerts = await db.Alerts .Where(a => a.AlertTime >= today && a.AlertTime <= endOfToday && a.EngineId == e.Id) .Select(a => new AlertView { Id = a.Id, AlertMessage = a.AlertMessage, AlertLevel = a.AlertLevelValue, Notified = a.Notified, AlertTime = a.AlertTime }) .ToListAsync(); } } //loading related entites //vessels = vessels.Include("OwnerAccount") // .Include("OperatorAccount") // .Include("ShipType") // .Include("ShipClass") // .Include("Country") // .Include("Engines") // .Include("Engines.EngineType"); // total count var total = vessels.Count(); // filtering if (kendoRequest.filter != null && kendoRequest.filter.Filters != null && kendoRequest.filter.Filters.Count() > 0) { IEnumerable <DataFilter> filters = kendoRequest.filter.Filters; string strWhere = string.Empty; foreach (var f in filters) { string whereFormat = DataFilterOperators.Operators[f.Operator]; if (!string.IsNullOrEmpty(whereFormat)) { vessels = vessels.Where(string.Format(whereFormat, f.Field, f.Value)).ToList(); } } } // sorting string strOrderBy = string.Empty; if (kendoRequest.sort != null && kendoRequest.sort.Length > 0) { foreach (var s in kendoRequest.sort) { strOrderBy += string.Format("{0} {1},", s.Field, s.Dir); } if (strOrderBy.Length > 0 && strOrderBy.EndsWith(",")) { strOrderBy = strOrderBy.Remove(strOrderBy.Length - 1); //Removing last comma } } if (strOrderBy == string.Empty) { strOrderBy = "1"; //Sort Noting } var sortedVessels = vessels.OrderBy(strOrderBy); // filtereding // take single page data if (kendoRequest.take == 0) { kendoRequest.take = total; } object[] data = sortedVessels.Skip(kendoRequest.skip).Take(kendoRequest.take).ToArray <object>(); return(new KendoResponse(total, data)); }
//// GET: api/KendoAlertSettings //public IQueryable<AlertSetting> GetAlertSettings() //{ // return db.AlertSettings; //} public KendoResponse GetAlertSettings([FromUri] KendoRequest kendoRequest) { int readLevel = Util.GetResourcePermission("Master Data", Util.ReourceOperations.Read); if (readLevel == 0) { return(new KendoResponse(0, null)); } //User currentUser = Util.GetCurrentUser(); IQueryable <AlertSetting> settings = from a in db.AlertSettings select a; //loading related entites settings = settings.Include("Model") .Include("Channel"); // filtering if (kendoRequest.filter != null && kendoRequest.filter.Filters != null && kendoRequest.filter.Filters.Count() > 0) { IEnumerable <DataFilter> filters = kendoRequest.filter.Filters; string strWhere = string.Empty; foreach (var f in filters) { string whereFormat = DataFilterOperators.Operators[f.Operator]; if (!string.IsNullOrEmpty(whereFormat)) { //if (Regex.IsMatch(f.Value, @"^\d+$")) whereFormat = whereFormat.Replace("\"", ""); settings = settings.Where(string.Format(whereFormat, f.Field, f.Value)); } } } // total count var total = settings.Count(); // sorting string strOrderBy = string.Empty; if (kendoRequest.sort != null && kendoRequest.sort.Length > 0) { foreach (var s in kendoRequest.sort) { strOrderBy += string.Format("{0} {1},", s.Field, s.Dir); } if (strOrderBy.Length > 0 && strOrderBy.EndsWith(",")) { strOrderBy = strOrderBy.Remove(strOrderBy.Length - 1); //Removing last comma } } if (strOrderBy == string.Empty) { strOrderBy = "1"; //Sort Noting } var sortedSettings = settings.OrderBy(strOrderBy); // take single page data if (kendoRequest.take == 0) { kendoRequest.take = total; } object[] data = sortedSettings.Skip(kendoRequest.skip).Take(kendoRequest.take).ToArray <object>(); return(new KendoResponse(total, data)); }
// GET: api/KendoChannelGroups public KendoResponse GetChannelGroups([FromUri] KendoRequest kendoRequest) { int readLevel = Util.GetResourcePermission("ChannelGroup", Util.ReourceOperations.Read); if (readLevel == 0) { return(new KendoResponse(0, null)); } User currentUser = Util.GetCurrentUser(); IQueryable <Object> channelGroups = from cg in db.ChannelGroups where readLevel == Util.AccessLevel.All select cg; //loading related entites channelGroups = channelGroups.Include("ChartType"); // total count var total = channelGroups.Count(); // filtering if (kendoRequest.filter != null && kendoRequest.filter.Filters != null && kendoRequest.filter.Filters.Count() > 0) { IEnumerable <DataFilter> filters = kendoRequest.filter.Filters; string strWhere = string.Empty; foreach (var f in filters) { string whereFormat = DataFilterOperators.Operators[f.Operator]; if (!string.IsNullOrEmpty(whereFormat)) { channelGroups = channelGroups.Where(string.Format(whereFormat, f.Field, f.Value)); } } } // sorting string strOrderBy = string.Empty; if (kendoRequest.sort != null && kendoRequest.sort.Length > 0) { foreach (var s in kendoRequest.sort) { strOrderBy += string.Format("{0} {1},", s.Field, s.Dir); } if (strOrderBy.Length > 0 && strOrderBy.EndsWith(",")) { strOrderBy = strOrderBy.Remove(strOrderBy.Length - 1); //Removing last comma } } if (strOrderBy == string.Empty) { strOrderBy = "1"; //Sort Noting } var sortedChannelGroups = channelGroups.OrderBy(strOrderBy); // filtereding // take single page data if (kendoRequest.take == 0) { kendoRequest.take = total; } object[] data = sortedChannelGroups.Skip(kendoRequest.skip).Take(kendoRequest.take).ToArray <object>(); return(new KendoResponse(total, data)); }
public KendoResult <Ponuda> PregledGrid([FromBody] KendoRequest kr) //Get([FromUri] FilterContainer filter, int take, int skip, int page, int pageSize) { //if (kr.Filter != null && kr.Filter.Filters.FirstOrDefault(x => x.Field == "all") != null) //{ // var sp = _session.CreateSQLQuery("exec KupacLookup") //} Klijent Klijent = null; Ponuda Ponuda = null; PonudaPredmet PonudaPredmet = null; ObimPoslovanja Obim = null; PonudaStatus PonudaStatus = null; PonudaStavka ponudaStavka = null; var upit = _session.QueryOver <Ponuda>(() => Ponuda) .Where(x => !x.Obrisan); //var subSvedenoEur = QueryOver.Of<Ponuda>() // .Where(p => !p.Obrisan) // .And(p => p.Id == Ponuda.Id) // .And(p => p.Valuta == "RSD") // .JoinQueryOver(p => p.Stavke, () => ponudaStavka) // .And(() => !ponudaStavka.Obrisan) // .SelectList(ls => ls // .Select( // Projections.SqlFunction("Coalesce", NHibernateUtil.Decimal, // Projections.Sum( // Projections.SqlFunction( // new VarArgsSQLFunction("(", " / ", ")"), // NHibernateUtil.Decimal, // Projections.SqlFunction( // new VarArgsSQLFunction("(", " * ", ")"), // NHibernateUtil.Decimal, // Projections.Property(() => ponudaStavka.Kolicina), // Projections.Property(() => ponudaStavka.Cena)) // , // Projections.Property(() => ponudaStavka.Kurs) // )), Projections.Constant(0)) // )); //var subPredmet = QueryOver.Of<PonudaPredmet>() // .Where(x => x.Ponuda.Id == Ponuda.Id); upit.JoinAlias(x => x.Klijent, () => Klijent) .JoinAlias(x => x.PonudaStatus, () => PonudaStatus) .JoinAlias(x => x.PredmetPonude, () => PonudaPredmet) .JoinAlias(() => PonudaPredmet.ObimPoslovanja, () => Obim); //upit.Select(Projections.Distinct( // Projections.ProjectionList() // .Add(Projections.Property(() => Ponuda.Id), "Id") // .Add(Projections.Property(() => Ponuda.Rbr), "Rbr") // .Add(Projections.Property(() => Ponuda.Broj), "Broj") // .Add(Projections.Property(() => Ponuda.DatumPonude), "DatumPonude") // .Add(Projections.Property(() => Ponuda.DatumVazenja), "DatumVazenja") // .Add(Projections.Property(() => Ponuda.Vrednost), "Vrednost") // .Add(Projections.Property(() => Ponuda.Klijent), "Klijent") // .Add(Projections.Property(() => Klijent.Naziv), "KlijentNaziv") // .Add(Projections.Property(() => Ponuda.Prihvacena), "Prihvacena") // .Add(Projections.Property(() => Ponuda.Status), "Status") // .Add(Projections.Property(() => Ponuda.Valuta), "Valuta") // .Add(Projections.Property(() => Ponuda.PonudaStatus), "PonudaStatus") // .Add(Projections.SubQuery(subPredmet), "PredmetPonude") // .Add(Projections.SubQuery(subSvedenoEur), "VrednostSvedenoEur") // )); TextInfo textInfo = CultureInfo.InvariantCulture.TextInfo; if (kr.Filter != null && kr.Filter.Filters.Any()) { foreach (FilterDescription filter in kr.Filter.Filters) { //string prop = textInfo.ToTitleCase(filter.Field); string prop = filter.Field.FirstCharToUpper(); if (prop.ToLower().Contains("klijent.id")) { upit.And(() => Klijent.Id == int.Parse(filter.Value)); } else if (prop.ToLower().Contains("predmetponude")) { upit.And(Restrictions.Disjunction() .Add(Restrictions.On(() => Obim.Sifra) .IsInsensitiveLike(filter.Value, MatchMode.Anywhere)) .Add(Restrictions.On(() => Obim.Naziv) .IsInsensitiveLike(filter.Value, MatchMode.Anywhere))); } else if (prop.ToLower().Contains("vrednost") && filter.Operator == "eq") { upit.And(p => p.Vrednost == decimal.Parse(filter.Value)); } else if (prop.ToLower().Contains("ponudastatus")) { upit.And(() => PonudaStatus.Id == int.Parse(filter.Value)); } else if (prop.ToLower().Contains("vrednost") && filter.Operator == "gt") { upit.And(p => p.Vrednost >= decimal.Parse(filter.Value)); } else if (prop.ToLower().Contains("vrednost") && filter.Operator == "lt") { upit.And(p => p.Vrednost <= decimal.Parse(filter.Value)); } else if (prop.ToLower().Contains("rbr")) { upit.And(() => Ponuda.Rbr == int.Parse(filter.Value)); } else if (prop.ToLower().Contains("klijent.naziv")) { upit.AndRestrictionOn(() => Klijent.Naziv).IsInsensitiveLike(filter.Value, MatchMode.Anywhere); } else if (filter.Value == "Da" || filter.Value == "Ne") { var f = filter.Value != "Ne"; upit.And(Restrictions.Eq(prop, f)); } else if (prop.Contains("DatumPonude")) { var d = Convert.ToDateTime(filter.Value); filter.Value = d.ToLocalTime().ToString("yyyyMMdd"); if (filter.Operator == "gte") { upit.And(x => x.DatumPonude >= d); } if (filter.Operator == "lte") { upit.And(x => x.DatumPonude <= d); } } else if (prop.Contains("DatumVazenja")) { var d = Convert.ToDateTime(filter.Value); filter.Value = d.ToLocalTime().ToString("yyyyMMdd"); if (filter.Operator == "gte") { upit.And(x => x.DatumVazenja >= d); } if (filter.Operator == "lte") { upit.And(x => x.DatumVazenja <= d); } } else if (prop.Contains("DatumPrihvatanja")) { var d = Convert.ToDateTime(filter.Value); filter.Value = d.ToLocalTime().ToString("yyyyMMdd"); if (filter.Operator == "gte") { upit.And(x => x.DatumPrihvatanja.Value >= d); } if (filter.Operator == "lte") { upit.And(x => x.DatumPrihvatanja.Value <= d); } } else if (prop.Contains("DatumOdobrenjaR")) { var d = Convert.ToDateTime(filter.Value); filter.Value = d.ToLocalTime().ToString("yyyyMMdd"); if (filter.Operator == "gte") { upit.And(x => x.DatumOdobrenjaR.Value >= d); } if (filter.Operator == "lte") { upit.And(x => x.DatumOdobrenjaR.Value <= d); } } else if (prop.Contains("DatumOdobrenjaD")) { var d = Convert.ToDateTime(filter.Value); filter.Value = d.ToLocalTime().ToString("yyyyMMdd"); if (filter.Operator == "gte") { upit.And(x => x.DatumOdobrenjaD.Value >= d); } if (filter.Operator == "lte") { upit.And(x => x.DatumOdobrenjaD.Value <= d); } } else { upit.Where(Restrictions.InsensitiveLike(prop, filter.Value, MatchMode.Anywhere)); } } } if (kr.PageSize != 0) { upit.Skip(kr.Skip); upit.Take(kr.Take); } var rowcount = upit.ToRowCountQuery(); if (kr.Sort.Any()) { foreach (Sort sort in kr.Sort) { string prop = sort.Field.FirstCharToUpper(); //textInfo.ToTitleCase(sort.Field); upit.UnderlyingCriteria.AddOrder(new Order(prop, sort.Dir.ToLower() == "asc")); } } else { upit.UnderlyingCriteria.AddOrder(new Order("Id", false)); } upit.Future <Ponuda>(); upit.TransformUsing(Transformers.DistinctRootEntity); //upit.TransformUsing(new AliasToBeanResultTransformer(typeof(PonudaPregled))); //var rowcount = upit.ToRowCountQuery(); rowcount.Select(Projections.CountDistinct(() => Ponuda.Id)); //rowcount.UnderlyingCriteria.AddOrder(new Order("redova", true)); var redova = rowcount.FutureValue <int>().Value; var lista = upit.List <Ponuda>(); var res = new KendoResult <Ponuda> { Data = lista, Total = redova }; return(res); }
//// GET: api/KendoUsers //public IQueryable<User> GetUsers() //{ // return db.Users; //} // GET: api/KendoUsers public KendoResponse GetUsers([FromUri] KendoRequest kendoRequest) { int readLevel = Util.GetResourcePermission("User", Util.ReourceOperations.Read); if (readLevel == 0) { return(new KendoResponse(0, null)); } User currentUser = Util.GetCurrentUser(); IQueryable <Object> users = from u in db.Users join a in db.Accounts on u.AccountID equals a.Id into ua from a in ua.DefaultIfEmpty() where (u.AccountID == currentUser.AccountID && readLevel == Util.AccessLevel.Own) || readLevel == Util.AccessLevel.All // do not remove above where caluse, this is for access permission select u; //loading related entites users = users.Include("Account") .Include("UserRoles"); // total count var total = users.Count(); // filtering if (kendoRequest.filter != null && kendoRequest.filter.Filters != null && kendoRequest.filter.Filters.Count() > 0) { IEnumerable <DataFilter> filters = kendoRequest.filter.Filters; string strWhere = string.Empty; foreach (var f in filters) { string whereFormat = DataFilterOperators.Operators[f.Operator]; if (!string.IsNullOrEmpty(whereFormat)) { users = users.Where(string.Format(whereFormat, f.Field, f.Value)); } } } // sorting string strOrderBy = string.Empty; if (kendoRequest.sort != null && kendoRequest.sort.Length > 0) { foreach (var s in kendoRequest.sort) { strOrderBy += string.Format("{0} {1},", s.Field, s.Dir); } if (strOrderBy.Length > 0 && strOrderBy.EndsWith(",")) { strOrderBy = strOrderBy.Remove(strOrderBy.Length - 1); //Removing last comma } } if (strOrderBy == string.Empty) { strOrderBy = "1"; //Sort Noting } var sortedUsers = users.OrderBy(strOrderBy); // filtereding // take single page data if (kendoRequest.take == 0) { kendoRequest.take = total; } object[] data = sortedUsers.Skip(kendoRequest.skip).Take(kendoRequest.take).ToArray <object>(); return(new KendoResponse(total, data)); }
// GET: api/KendoEngines public KendoResponse GetEngines([FromUri] KendoRequest kendoRequest) { int readLevel = Util.GetResourcePermission("Engine", Util.ReourceOperations.Read); if (readLevel == 0) { return(new KendoResponse(0, null)); } User currentUser = Util.GetCurrentUser(); IQueryable <Object> engines = from e in db.Engines join v in db.Vessels on e.VesselID equals v.Id where // Login user is from Owing company ((v.OwnerID == currentUser.AccountID && readLevel == Util.AccessLevel.Own)) || // Login user is from Operating company ((v.OperatorID == currentUser.AccountID && readLevel == Util.AccessLevel.Own)) || // Admin user readLevel == Util.AccessLevel.All select e; //loading related entites engines = engines.Include("AlternatorMaker") .Include("EngineType") .Include("Model") .Include("Vessel") .Include("GearboxModel"); // total count var total = engines.Count(); // filtering if (kendoRequest.filter != null && kendoRequest.filter.Filters != null && kendoRequest.filter.Filters.Count() > 0) { IEnumerable <DataFilter> filters = kendoRequest.filter.Filters; string strWhere = string.Empty; foreach (var f in filters) { string whereFormat = DataFilterOperators.Operators[f.Operator]; if (!string.IsNullOrEmpty(whereFormat)) { engines = engines.Where(string.Format(whereFormat, f.Field, f.Value)); } } } // sorting string strOrderBy = string.Empty; if (kendoRequest.sort != null && kendoRequest.sort.Length > 0) { foreach (var s in kendoRequest.sort) { strOrderBy += string.Format("{0} {1},", s.Field, s.Dir); } if (strOrderBy.Length > 0 && strOrderBy.EndsWith(",")) { strOrderBy = strOrderBy.Remove(strOrderBy.Length - 1); //Removing last comma } } if (strOrderBy == string.Empty) { strOrderBy = "1"; //Sort Noting } var sortedEngines = engines.OrderBy(strOrderBy); // filtereding // take single page data if (kendoRequest.take == 0) { kendoRequest.take = total; } object[] data = sortedEngines.Skip(kendoRequest.skip).Take(kendoRequest.take).ToArray <object>(); return(new KendoResponse(total, data)); }
public KendoResult <RadniNalog> PregledGrid([FromBody] KendoRequest kr) //Get([FromUri] FilterContainer filter, int take, int skip, int page, int pageSize) { //if (kr.Filter != null && kr.Filter.Filters.FirstOrDefault(x => x.Field == "all") != null) //{ // var sp = _session.CreateSQLQuery("exec KupacLookup") //} RadniNalog nalog = null; Klijent klijent = null; Ponuda ponuda = null; RadniNalogStatus nalogStatus = null; //RadniNalogPredmet radniNalogPredmet = null; ObimPoslovanja obim = null; var upit = _session.QueryOver(() => nalog) .Where(x => x.Obrisan == false); upit.JoinAlias(x => x.Ponuda, () => ponuda) .JoinAlias(x => x.Ponuda.Klijent, () => klijent) .JoinAlias(x => x.PredmetNaloga, () => obim) .JoinAlias(x => x.RadniNalogStatus, () => nalogStatus); //.JoinAlias(x => x.PredmetNaloga, () => radniNalogPredmet) //.JoinAlias(() => radniNalogPredmet.ObimPoslovanja, () => obim); //TextInfo textInfo = CultureInfo.InvariantCulture.TextInfo; if (kr.Filter != null && kr.Filter.Filters.Any()) { foreach (FilterDescription filter in kr.Filter.Filters) { //string prop = textInfo.ToTitleCase(filter.Field); string prop = filter.Field.FirstCharToUpper(); if (prop.ToLower().Contains("ponuda.klijent.id")) { upit.And(() => ponuda.Klijent.Id == int.Parse(filter.Value)); } else if (prop.ToLower().Contains("nalogstatus")) { upit.And(() => nalogStatus.Id == int.Parse(filter.Value)); } else if (prop.ToLower().Contains("predmetnaloga")) { upit.And(Restrictions.Disjunction() .Add(Restrictions.On(() => obim.Sifra) .IsInsensitiveLike(filter.Value, MatchMode.Anywhere)) .Add(Restrictions.On(() => obim.Naziv) .IsInsensitiveLike(filter.Value, MatchMode.Anywhere))); } else if (prop.ToLower().Contains("klijent.naziv")) { upit.AndRestrictionOn(() => klijent.Naziv).IsInsensitiveLike(filter.Value, MatchMode.Anywhere); } else if (prop.Contains("DatumKreiranja")) { var d = Convert.ToDateTime(filter.Value); filter.Value = d.ToLocalTime().ToString("yyyyMMdd"); if (filter.Operator == "gte") { upit.And(x => x.DatumKreiranja >= d); } if (filter.Operator == "lte") { upit.And(x => x.DatumKreiranja <= d); } } else { upit.Where(Restrictions.InsensitiveLike(prop, filter.Value, MatchMode.Anywhere)); } } } var rowcount = upit.ToRowCountQuery(); if (kr.PageSize != 0) { upit.Skip(kr.Skip); upit.Take(kr.Take); } if (kr.Sort.Any()) { foreach (Sort sort in kr.Sort) { string prop = sort.Field.FirstCharToUpper(); //textInfo.ToTitleCase(sort.Field); upit.UnderlyingCriteria.AddOrder(new Order(prop, sort.Dir.ToLower() == "asc")); } } upit.Future <RadniNalog>(); //supit.TransformUsing(Transformers.DistinctRootEntity); //rowcount.Select(Projections.Count(Projections.Id())); var redova = rowcount.FutureValue <int>().Value; var lista = upit.List <RadniNalog>(); var res = new KendoResult <RadniNalog> { Data = lista, Total = redova }; return(res); }
// GET: api/KendoAlerts public async Task <KendoResponse> GetVessels([FromUri] KendoRequest kendoRequest) { int readLevel = Util.GetResourcePermission("Vessel", Util.ReourceOperations.Read); if (readLevel == 0) { return(new KendoResponse(0, null)); } User currentUser = Util.GetCurrentUser(); List <Alert> alerts = await( from a in db.Alerts join v in db.Vessels on a.VesselId equals v.Id where // Login user is from Owing company ((v.OwnerID == currentUser.AccountID && readLevel == Util.AccessLevel.Own)) || // Login user is from Operating company ((v.OperatorID == currentUser.AccountID && readLevel == Util.AccessLevel.Own)) || // Admin user readLevel == Util.AccessLevel.All orderby a.AlertTime descending select a ).ToListAsync(); var total = alerts.Count(); // filtering if (kendoRequest.filter != null && kendoRequest.filter.Filters != null && kendoRequest.filter.Filters.Count() > 0) { IEnumerable <DataFilter> filters = kendoRequest.filter.Filters; string strWhere = string.Empty; foreach (var f in filters) { string whereFormat = DataFilterOperators.Operators[f.Operator]; if (!string.IsNullOrEmpty(whereFormat)) { alerts = alerts.Where(string.Format(whereFormat, f.Field, f.Value)).ToList(); } } } // sorting string strOrderBy = string.Empty; if (kendoRequest.sort != null && kendoRequest.sort.Length > 0) { foreach (var s in kendoRequest.sort) { strOrderBy += string.Format("{0} {1},", s.Field, s.Dir); } if (strOrderBy.Length > 0 && strOrderBy.EndsWith(",")) { strOrderBy = strOrderBy.Remove(strOrderBy.Length - 1); //Removing last comma } } if (strOrderBy == string.Empty) { strOrderBy = "1"; //Sort Noting } var sortedAlerts = alerts.OrderBy(strOrderBy); // filtereding // take single page data if (kendoRequest.take == 0) { kendoRequest.take = total; } object[] data = sortedAlerts.Skip(kendoRequest.skip).Take(kendoRequest.take).ToArray <object>(); return(new KendoResponse(total, data)); }
public KendoResult <KlijentPregled> PregledGrid([FromBody] KendoRequest kr) //Get([FromUri] FilterContainer filter, int take, int skip, int page, int pageSize) { //if (kr.Filter != null && kr.Filter.Filters.FirstOrDefault(x => x.Field == "all") != null) //{ // var sp = _session.CreateSQLQuery("exec KupacLookup") //} Ponuda ponuda = null; Klijent klijent = null; PonudaStavka ponudaStavka = null; KlijentPregled klijentPregled = null; //var subEur = QueryOver.Of<Ponuda>() // .Where(p => !p.Obrisan) // .And(p => p.Klijent.Id == klijent.Id) // .And(p => p.Valuta == "EUR") // .JoinQueryOver(p => p.Stavke, () => ponudaStavka) // .SelectList(ls => ls // .SelectSum(() => ponudaStavka.Vrednost) // ); //var subRsd = QueryOver.Of<Ponuda>() // .Where(p => !p.Obrisan) // .And(p => p.Klijent.Id == klijent.Id) // .And(p => p.Valuta == "RSD") // .JoinQueryOver(p => p.Stavke, () => ponudaStavka) // .SelectList(ls => ls // .SelectSum(() => ponudaStavka.Vrednost) // ); var upit = _session.QueryOver <Klijent>(() => klijent) .Where(x => !x.Obrisan); //.SelectList(list => list // .Select(k => k.Id).WithAlias(() => klijentPregled.Id) // .Select(k => k.Naziv).WithAlias(() => klijentPregled.Naziv) // .Select(k => k.Drzava).WithAlias(() => klijentPregled.Drzava) // .Select(k => k.Mesto).WithAlias(() => klijentPregled.Mesto) // .Select(k => k.Adresa).WithAlias(() => klijentPregled.Adresa) // .Select(k => k.Pib).WithAlias(() => klijentPregled.Pib) // .Select(k => k.Komentar).WithAlias(() => klijentPregled.Komentar) // .SelectSubQuery( // QueryOver.Of<Ponuda>() // .Where(p => !p.Obrisan) // .And(p => p.Klijent.Id == klijent.Id) // .And(p => p.Valuta == "RSD") // .JoinQueryOver(p => p.Stavke, () => ponudaStavka) // .SelectList(ls => ls // .SelectSum(() => ponudaStavka.Vrednost) // ) // ).WithAlias(() => klijentPregled.VrednostRsd) // .SelectSubQuery( // QueryOver.Of<Ponuda>() // .Where(p => !p.Obrisan) // .And(p => p.Klijent.Id == klijent.Id) // .And(p => p.Valuta == "EUR") // .JoinQueryOver(p => p.Stavke, () => ponudaStavka) // .SelectList(ls => ls // .SelectSum(() => ponudaStavka.Vrednost) // ) // ).WithAlias(() => klijentPregled.VrednostEur) //); upit.Select(Projections.ProjectionList() .Add(Projections.Property(() => klijent.Id), "Id") .Add(Projections.Property(() => klijent.Naziv), "Naziv") .Add(Projections.Property(() => klijent.Drzava), "Drzava") .Add(Projections.Property(() => klijent.Adresa), "Adresa") .Add(Projections.Property(() => klijent.Mesto), "Mesto") .Add(Projections.Property(() => klijent.Pib), "Pib") .Add(Projections.Property(() => klijent.Komentar), "Komentar") .Add(Projections.Property(() => klijent.Ugovoreno), "Ugovoreno") .Add(Projections.Property(() => klijent.Fakturisano), "Fakturisano") .Add(Projections.Property(() => klijent.Uplaceno), "Uplaceno")); //.Add(Projections.SubQuery(subRsd), "vrednostRsd") //.Add(Projections.SubQuery(subEur), "vrednostEur")); var rowcount = upit.ToRowCountQuery(); TextInfo textInfo = CultureInfo.InvariantCulture.TextInfo; if (kr.Filter != null && kr.Filter.Filters.Any()) { foreach (FilterDescription filter in kr.Filter.Filters) { string prop = filter.Field.FirstCharToUpper(); //textInfo.ToTitleCase(filter.Field); upit.Where(Restrictions.InsensitiveLike(prop, filter.Value, MatchMode.Anywhere)); rowcount.Where(Restrictions.InsensitiveLike(prop, filter.Value, MatchMode.Anywhere)); } } if (kr.PageSize != 0) { upit.Skip(kr.Skip); upit.Take(kr.Take); } if (kr.Sort.Any()) { foreach (Sort sort in kr.Sort) { string prop = sort.Field.FirstCharToUpper(); //textInfo.ToTitleCase(sort.Field); { upit.UnderlyingCriteria.AddOrder(new Order(prop, sort.Dir.ToLower() == "asc")); //if (sort.Field.Contains("vrednostEur")) // upit.UnderlyingCriteria.AddOrder(new Order(Projections.SubQuery(subEur), sort.Dir.ToLower() == "asc")); //else if (sort.Field.Contains("vrednostRsd")) // upit.UnderlyingCriteria.AddOrder(new Order(Projections.SubQuery(subEur), sort.Dir.ToLower() == "asc")); //else // upit.UnderlyingCriteria.AddOrder(new Order(prop, sort.Dir.ToLower() == "asc")); } } } upit.TransformUsing(Transformers.AliasToBean <KlijentPregled>()); upit.Future <KlijentPregled>(); //rowcount.Select(Projections.Count(Projections.Id())); var redova = rowcount.FutureValue <int>().Value; var lista = upit.List <KlijentPregled>(); var res = new KendoResult <KlijentPregled> { Data = lista, Total = redova }; return(res); }
// GET: api/KendoMonitorings public KendoResponse GetMonitorings([FromUri] KendoRequest kendoRequest) { int readLevel = Util.GetResourcePermission("Vessel", Util.ReourceOperations.Read); if (readLevel == 0) { return(new KendoResponse(0, null)); } User currentUser = Util.GetCurrentUser(); IQueryable <MonitorView> monitorings = from m in db.Monitorings join v in db.Vessels on m.IMO_No equals v.IMO_No into mv from m_v in mv join e in db.Engines on m.SerialNo equals e.SerialNo into me from m_e in me join ml in db.Models on m_e.EngineModelID equals ml.Id into mml from m_ml in mml.DefaultIfEmpty() join c in db.Channels on new { m.ChannelNo, ID = m_ml.Id } equals new { c.ChannelNo, ID = c.ModelID.HasValue ? c.ModelID.Value : Guid.Empty } into mch from m_ch in mch.DefaultIfEmpty() join ct in db.ChartTypes on m_ch.ChartTypeID equals ct.Id into mct from m_ct in mct.DefaultIfEmpty() where m.Processed.HasValue ? m.Processed.Value : false && // Login user is from Owing company ( ((m_v.OwnerID == currentUser.AccountID && readLevel == Util.AccessLevel.Own)) || // Login user is from Operating company ((m_v.OperatorID == currentUser.AccountID && readLevel == Util.AccessLevel.Own)) || // Admin user readLevel == Util.AccessLevel.All ) select new MonitorView { Id = m.Id, IMONo = m.IMO_No, TimeStamp = m.TimeStamp, TimeStampDateOnly = DbFunctions.TruncateTime(m.TimeStamp), VesselName = m_v.VesselName, SerialNo = m.SerialNo, EngineID = m_e.Id, //!= null? m_e.Id.ToString() : "", EngineModelID = m_e.EngineModelID, ModelName = m_ml.Name, ChannelNo = m.ChannelNo, Value = m.Value, DisplayUnit = m_ch.DisplayUnit, IncomingChannelName = m.ChannelDescription, ChannelName = m_ch.Name, ChartType = m_ct.Name, Processed = m.Processed, DashboardDisplay = m_ch.DashboardDisplay }; // filtering if (kendoRequest.filter != null && kendoRequest.filter.Filters != null && kendoRequest.filter.Filters.Count() > 0) { List <DataFilter> filters = kendoRequest.filter.Filters.ToList(); string strWhere = string.Empty; var dateFilter = (from f in filters where f.Field.ToLower() == "timestamp" select f).FirstOrDefault(); /* * if (dateFilter != null) * { * dateFilter.Value = dateFilter.Value.Substring(0, 33); * try * { * serverDateFilter = DateTime.ParseExact(dateFilter.Value, "ddd MMM dd yyyy HH:mm:ss 'GMT'zzz", System.Globalization.CultureInfo.InvariantCulture); * } * catch (Exception ex) * { * if (ex.InnerException != null) * logger.Error(ex.InnerException.Message, ex.InnerException); * else * logger.Error(ex.Message, ex); * } * * filters.Remove(dateFilter); * * dateFilter.Field = * //if (dateFilter.Operator == "eq") { * // filters.Add(new DataFilter { Operator = "gte", Field = dateFilter.Field, Value = string.Format("new Date(\"{0}\")", serverDateFilter.ToShortDateString()) }); * //} * } */ foreach (var f in filters) { string whereFormat = DataFilterOperators.Operators[f.Operator]; switch (f.Field.ToLower()) { case "engineid": monitorings = monitorings.Where(string.Format("EngineID.Equals(Guid(\"{0}\"))", f.Value)); break; case "timestamp": dateFilter.Value = dateFilter.Value.ToString().Substring(0, 33); try { DateTime parsedDateTime = DateTime.ParseExact(dateFilter.Value.ToString(), "ddd MMM dd yyyy HH:mm:ss 'GMT'zzz", System.Globalization.CultureInfo.InvariantCulture); parsedDateTime = parsedDateTime.Date.ToUniversalTime(); if (f.Operator.ToLower() == "eq") { monitorings = monitorings.Where(m => m.TimeStampDateOnly.HasValue ? m.TimeStampDateOnly == parsedDateTime : false); } else if (f.Operator.ToLower() == "gte") { monitorings = monitorings.Where(m => m.TimeStampDateOnly.HasValue ? m.TimeStampDateOnly >= parsedDateTime : false); } else if (f.Operator.ToLower() == "lte") { monitorings = monitorings.Where(m => m.TimeStampDateOnly.HasValue ? m.TimeStampDateOnly <= parsedDateTime : false); } } catch (Exception ex) { if (ex.InnerException != null) { logger.Error(ex.InnerException.Message, ex.InnerException); } else { logger.Error(ex.Message, ex); } } break; default: monitorings = monitorings.Where(string.Format(whereFormat, f.Field, f.Value)); break; } } } // total count var total = monitorings.Count(); // sorting string strOrderBy = string.Empty; if (kendoRequest.sort != null && kendoRequest.sort.Length > 0) { foreach (var s in kendoRequest.sort) { strOrderBy += string.Format("{0} {1},", s.Field, s.Dir); } if (strOrderBy.Length > 0 && strOrderBy.EndsWith(",")) { strOrderBy = strOrderBy.Remove(strOrderBy.Length - 1); //Removing last comma } } if (strOrderBy == string.Empty) { strOrderBy = "1"; //Sort Noting } var sortedMonitorings = monitorings.OrderBy(strOrderBy); // take single page data if (kendoRequest.take == 0) { kendoRequest.take = total; } object[] data = sortedMonitorings.Skip(kendoRequest.skip).Take(kendoRequest.take).ToArray <object>(); KendoResponse response = new KendoResponse(total, data); response.Columns = new string[] { "Id", "IMONo", "TimeStamp", "VesselName", "SerialNo", "EngineID", "EngineModelID", "ModelName", "ChannelNo", "Value", "DisplayUnit", "IncomingChannelName", "ChannelName", "ChartType", "Processed" }; return(response); }
public KendoResult <ZapisDto> ListaSvi([FromBody] KendoRequest kr) { //this.repo.find("Dokument?entitet=" + entitet + "&entitetopis=" + entitetoipis + "&entitetid" + entitet) Zapis zapis = null; RadniNalog radniNalog = null; Korisnik odobrio = null; Ponuda Ponuda = null; Klijent Klijent = null; var upit = _session.QueryOver <Zapis>(() => zapis) .JoinAlias(x => x.RadniNalog, () => radniNalog) .JoinAlias(() => radniNalog.Ponuda, () => Ponuda) .JoinAlias(() => Ponuda.Klijent, () => Klijent) //.Left.JoinAlias(x => x.Odobrio, () => odobrio) .Where(x => !x.Obrisan); if (kr.Sort.Any()) { foreach (Sort sort in kr.Sort) { string prop = sort.Field.FirstCharToUpper(); //textInfo.ToTitleCase(sort.Field); upit.UnderlyingCriteria.AddOrder(new Order(prop, sort.Dir.ToLower() == "asc")); } } if (kr.PageSize != 0) { upit.Skip(kr.Skip); upit.Take(kr.Take); } ZapisDto result = null; var obj = upit.SelectList(list => list .Select(p => p.Id).WithAlias(() => result.Id) .Select(p => p.Rbr).WithAlias(() => result.Rbr) .Select(p => p.Opis).WithAlias(() => result.Opis) .Select(p => p.FileName).WithAlias(() => result.FileName) .Select(p => p.DateLastModified).WithAlias(() => result.DateLastModified) .Select(p => p.DateCreated).WithAlias(() => result.DateUploaded) .Select(p => p.Size).WithAlias(() => result.Size) .Select(p => p.Broj).WithAlias(() => result.Broj) .Select(p => p.Vrsta).WithAlias(() => result.Vrsta) .Select(p => p.Oznaka).WithAlias(() => result.Oznaka) .Select(p => p.Odobreno).WithAlias(() => result.Odobreno) .Select(p => p.Datum).WithAlias(() => result.Datum) .Select(p => p.DatumOdobrenja).WithAlias(() => result.DatumOdobrenja) .Select(p => p.Odobrio).WithAlias(() => result.Odobrio) .Select(p => p.RadniNalog).WithAlias(() => result.RadniNalog) //.Select(() => ponuda).WithAlias(() => result.Ponuda) ); upit.Future <ZapisDto>(); upit.TransformUsing(new AliasToBeanResultTransformer(typeof(ZapisDto))); var rowcount = upit.ToRowCountQuery(); rowcount.Select(Projections.Count(Projections.Id())); var redova = rowcount.FutureValue <int>().Value; var lista = upit.List <ZapisDto>(); var res = new KendoResult <ZapisDto> { Data = lista, Total = redova }; return(res); }