public static MulticastCamera[] FetchCameras() { using var db = new Cctv(); return(( from t in from sc in db.ServerCamera from c in db.Camera.InnerJoin(c => sc.CameraID == c.ID) from cu in db.CameraUrl.InnerJoin(cu => c.ID == cu.CameraID) where sc.IsActive && sc.ServerID == Config.Instance.ServerID select new { RowNum = Sql.Ext.RowNumber() .Over() .PartitionBy(c.ID) .OrderBy(sc.ActiveRank) .ToValue(), CameraUrl = cu.Url, c.MulticastPort, } select new MulticastCamera { CameraUrl = t.CameraUrl, MulticastPort = t.MulticastPort, }).ToArray()); }
public static string FetchMulticastIPAddress() { using var db = new Cctv(); return(( from s in db.Settings select s.MulticastIPAddress).First()); }
public static Server FetchServer() { using var db = new Cctv(); return(( from s in db.Server where s.ID == Config.Instance.ServerID select s).First()); }
public static Viewer FetchViewer() { using var db = new Cctv(); return(( from v in db.Viewer where v.ID == Config.Instance.ViewerID select v).First()); }
public static Camera FetchCameraByID(int cameraID) { using var db = new Cctv(); return(( from c in db.Camera where c.ID == cameraID select c).FirstOrDefault()); }
public static LayoutCameraUserChoice[] FetchUserChoiceForLayout(int layoutID) { using var db = new Cctv(); return(( from lcuc in db.LayoutCameraUserChoice from c in db.Camera.InnerJoin(c => lcuc.OptionalCameraID == c.ID) where lcuc.LayoutID == layoutID select LayoutCameraUserChoice.WithCamera(lcuc, c)).ToArray()); }
public static LayoutCamera[] FetchCamerasForLayout(int layoutID) { using var db = new Cctv(); return(( from lc in db.LayoutCamera from c in db.Camera.InnerJoin(c => lc.CameraID == c.ID) where lc.LayoutID == layoutID orderby lc.RowIndex, lc.ColumnIndex select LayoutCamera.WithCamera(lc, c)).ToArray()); }
public static async Task <Layout[]> FetchLayoutsAsync() { using var db = new Cctv(); return(await( from l in db.Layout from vl in db.ViewerLayout.InnerJoin(vl => l.ID == vl.LayoutID) where vl.ViewerID == Config.Instance.ViewerID && vl.IsActive orderby vl.Rank select l).ToArrayAsync()); }