Esempio n. 1
0
        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()));
        }
Esempio n. 2
0
        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()));
        }
Esempio n. 3
0
        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()));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 6
0
        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()));
        }
Esempio n. 7
0
        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));
        }
Esempio n. 9
0
        // 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));
        }
Esempio n. 10
0
        //// 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));
        }
Esempio n. 11
0
        // 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));
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        //// 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));
        }
Esempio n. 14
0
        // 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));
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        // 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));
        }
Esempio n. 17
0
        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);
        }
Esempio n. 18
0
        // 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);
        }
Esempio n. 19
0
        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);
        }