Ejemplo n.º 1
0
        public static void SetErrorred(int epid, Provider.ErrorType errorType, object details)
        {
            switch (errorType)
            {
            case Provider.ErrorType.RemoveFromList:
                RemoveAsync(epid, true);
                return;

            case Provider.ErrorType.UnknownError:
                using (MemoryStream stream = new MemoryStream())
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(stream, details);
                    details = stream.ToArray();
                }

                break;
            }

            lock (DbUpdateLock)
            {
                using (SQLiteCommand command = new SQLiteCommand("update downloads set status=@status, errortime=datetime('now'), errortype=@errortype, errordetails=@errordetails, errorcount=errorcount+1, totalerrors=totalerrors+1 where epid=@epid", FetchDbConn()))
                {
                    command.Parameters.Add(new SQLiteParameter("@status", DownloadStatus.Errored));
                    command.Parameters.Add(new SQLiteParameter("@errortype", errorType));
                    command.Parameters.Add(new SQLiteParameter("@errordetails", details));
                    command.Parameters.Add(new SQLiteParameter("@epid", epid));
                    command.ExecuteNonQuery();
                }
            }

            lock (sortCacheLock)
            {
                sortCache = null;
            }

            if (Updated != null)
            {
                Updated(epid);
            }
        }
 private void DownloadError(Provider.ErrorType errorType, string errorDetails)
 {
     Model.Download.SetErrorred(this.episodeInfo.Epid, errorType, errorDetails);
     this.DownloadFinished();
 }