Esempio n. 1
0
        public static List<EpgListing> LoadEpgListings(int UserOid, int[] ChannelOids, IEnumerable<NUtility.EPGEvent> Data, RecordingDirectory UserDefault = null)
        {
            Stopwatch timer = new Stopwatch();
            timer.Start();
            Logger.Log("Loading EPG Listings [0]: " + timer.Elapsed);
            var config = new Configuration();
            if(UserDefault == null)
                UserDefault = RecordingDirectory.LoadUserDefault(UserOid);

            var allowedRecordings = EpgRecordingData.LoadAllowedRecordings(UserOid);
            Logger.Log("Loading EPG Listings [2]: " + timer.Elapsed);

            timer.Stop();
            return Data.Select(x =>
            {
                var listing = new EpgListing(x);
                if (allowedRecordings.ContainsKey(x.OID))
                {
                    listing.PrePadding = allowedRecordings[x.OID].PrePadding;
                    listing.PostPadding = allowedRecordings[x.OID].PostPadding;
                    listing.RecordingDirectoryId = allowedRecordings[x.OID].RecordingDirectoryId;
                    listing.Keep = allowedRecordings[x.OID].Keep;
                    listing.IsRecurring = allowedRecordings[x.OID].IsRecurring;
                    listing.RecordingType = allowedRecordings[x.OID].RecordingType;
                    listing.RecordingOid = allowedRecordings[x.OID].RecordingOid;
                    listing.IsRecording = true;
                }
                else
                {
                    listing.PrePadding = config.PrePadding;
                    listing.PostPadding = config.PostPadding;
                    listing.RecordingDirectoryId = UserDefault == null ? null : UserDefault.RecordingDirectoryId;
                }
                return listing;
            }).ToList();
        }
        public static RecordingDirectory Create(int UserOid, string Name)
        {
            var db = DbHelper.GetDatabase();
            // check if exists
            if (db.ExecuteScalar<int>("select count(*) from recordingdirectory where useroid = @0 and lower(name) = @1", UserOid, Name.Trim().ToLower()) > 0)
                throw new ArgumentException("A Recording Directory with the name '{0}' already exists.".FormatStr(Name));

            string username = User.GetUsername(UserOid);
            RecordingDirectory directory = new RecordingDirectory() { UserOid = UserOid, Name = Name.Trim(), Username = username };
            db.Insert(directory);
            Configuration.Write();
            return directory;
        }
Esempio n. 3
0
        public static User CreateUser(string Username, string EmailAddress, string Password, UserRole UserRole, bool Administrator = false, DateTime? LastLoggedInUtc = null)
        {
            var db = DbHelper.GetDatabase();
            db.BeginTransaction();
            try
            {
                User user = new User();
                user.Username = Username;
                user.EmailAddress = EmailAddress;
                if(LastLoggedInUtc == null)
                    LastLoggedInUtc = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                user.LastLoggedInUtc = LastLoggedInUtc.Value;
                user.Password = Password;
                user.Administrator = Administrator;
                user.UserRole = UserRole;
                user.DateCreatedUtc = DateTime.UtcNow;
                if (db.Insert("user", "oid", true, user) == null)
                    throw new Exception("Failed to create user.");

                // insert default channels.
                db.Execute("insert into [userchannel](useroid, channeloid,[enabled],number) select @0, oid, [enabled], number from channel", user.Oid);

                // insert default groups
                var channelGroups = ChannelGroup.LoadAll(Globals.SHARED_USER_OID);
                foreach(var cg in channelGroups)
                {
                    ChannelGroup cgNew = new ChannelGroup();
                    cgNew.UserOid = user.Oid;
                    cgNew.ParentOid = cg.Oid;
                    cgNew.Enabled = true;
                    cgNew.Name = "";
                    cgNew.OrderOid = cg.OrderOid;

                    db.Insert("channelgroup", "oid", true, cgNew);
                }

                // create default recording directory
                RecordingDirectory dir = new RecordingDirectory() { UserOid = user.Oid, Username = user.Username, IsDefault = true, Name = "Default", Path = "" };
                db.Insert("recordingdirectory", "oid", true, dir);

                user.DefaultRecordingDirectoryOid = dir.Oid;
                db.Save(user);

                db.CompleteTransaction();

                return user;
            }
            catch (Exception ex)
            {
                Logger.Log("Failed to create user: " + ex.Message + Environment.NewLine + ex.StackTrace);
                db.AbortTransaction();
                return null;
            }
        }