public ActionResult Default(string tip) { try { object rez = null; if (tip == "Primarna") { rez = new Primarna(); } if (tip == "Sekundarna") { rez = new Sekundarna(); } if (tip == "Tercijarna") { rez = new Tercijarna(); } if (tip == "Obim") { rez = new ObimPoslovanja(); } return(Json(new { Success = true, Message = "", Obj = rez })); } catch (Exception ex) { _logger.LogError(ex.Message); return(Json(new { Success = false, Message = ex.Message })); } }
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); }
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); }