protected override void InternalGET(HttpContext context, HandlerTimedCache cache)
        {
            var user = UserHelper.GetUser(context.User.Identity.Name);

            if (!user.IsSysAdmin())
            {
                context.Response.StatusCode = (int)HttpStatusCode.Forbidden;
                context.Response.Write(UnauthMessage);
                return;
            }

            var type            = WebUtil.GetParam(context, "type", false);
            var typeEnum        = (UploadTypes)Enum.Parse(typeof(UploadTypes), type);
            var uploadRevisions = PdbUploadRevision.GetUploadRevisions(typeEnum);
            var json            = WebUtil.ObjectToJson(uploadRevisions);

            context.Response.StatusCode = (int)HttpStatusCode.OK;
            context.Response.Write(json);
        }
        /// <summary>
        /// Import from a class defined csv file.  Remove all existing
        /// records in the target data set, load new rows and archive
        /// the records for restore points
        /// </summary>
        /// <param name="data"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public ImportResult Load(Stream data, User user)
        {
            if (ReadOnly)
            {
                return(null);
            }

            var reader = new StreamReader(data);
            var csv    = reader.ReadToEnd();

            var engine = new FileHelperEngine <T> {
                ErrorMode = ErrorMode.SaveAndContinue
            };
            var rows    = engine.ReadString(csv);
            var results = new ImportResult {
                ImportCount = rows.Length, Errors = engine.ErrorManager
            };

            if (results.Errors.ErrorCount == 0)
            {
                var trans = new SqlTransaction((AbstractSqlConnectionDescriptor)_writeDao.ConnDesc);
                try
                {
                    // Refresh the data if successfull
                    PreProcess(trans, rows);
                    _writeDao.DeleteAll(trans);
                    _writeDao.Insert(trans, rows);
                    PostProcess(trans, rows);
                    trans.Commit();

                    PdbUploadRevision.AddUploadRevision(UploadType, csv, user);
                }
                catch (Exception)
                {
                    trans.Rollback();
                    throw;
                }
            }
            return(results);
        }
        protected override void InternalPOST(HttpContext context, HandlerTimedCache cache)
        {
            var user = UserHelper.GetUser(context.User.Identity.Name);

            if (!user.IsSysAdmin())
            {
                context.Response.StatusCode = (int)HttpStatusCode.Forbidden;
                context.Response.Write(UnauthMessage);
                return;
            }

            var idToRestore = WebUtil.ParseIntParam(context, "id");

            PdbUploadRevision.RestoreRevision(idToRestore, user);

            context.Response.StatusCode = (int)HttpStatusCode.OK;
            context.Response.Write(JObject.FromObject(new
            {
                status = "OK"
            }
                                                      ));
        }