public override FileActionStatus Save(FileDefinition fileDefinition, ContainerDefinition containerDefinition,
            FileCreateOptions fileCreateOptions,
            ContainerCreateOptions containerCreateOptions)
        {
            var status = new FileActionStatus();

            // If we aren't allowing auto creation of directories, fail
            if (!Directory.Exists(containerDefinition.Path) && !_createPathsAutomatically)
            {
                status.Status = Status.NoAction;
                status.Message = Constants.Messages.NoAction +
                                 " Path does not exist, and config to create paths automatically is false.";
                return status;
            }

            // Create directory if it doesn't exist
            Directory.CreateDirectory(containerDefinition.Path);

            var path = GetFullFilePath(fileDefinition, containerDefinition);

            // Overwrite based on provided option
            if (!fileCreateOptions.OverwriteExisting && File.Exists(path))
            {
                status.Status = Status.NoAction;
                status.Message = Constants.Messages.NoAction +
                                 " File already exists; must explicitly set option to overwrite.";
                return status;
            }

            SaveFile(path, fileDefinition.Data).Wait();

            status.Status = Status.Success;
            status.Message = Constants.Messages.Success;
            return status;
        }
        public override FileActionStatus Save(FileDefinition fileDefinition, ContainerDefinition containerDefinition,
                                              FileCreateOptions fileCreateOptions,
                                              ContainerCreateOptions containerCreateOptions)
        {
            var status = new FileActionStatus();

            // If we aren't allowing auto creation of directories, fail
            if (!Directory.Exists(containerDefinition.Path) && !_createPathsAutomatically)
            {
                status.Status  = Status.NoAction;
                status.Message = Constants.Messages.NoAction +
                                 " Path does not exist, and config to create paths automatically is false.";
                return(status);
            }

            // Create directory if it doesn't exist
            Directory.CreateDirectory(containerDefinition.Path);

            var path = GetFullFilePath(fileDefinition, containerDefinition);

            // Overwrite based on provided option
            if (!fileCreateOptions.OverwriteExisting && File.Exists(path))
            {
                status.Status  = Status.NoAction;
                status.Message = Constants.Messages.NoAction +
                                 " File already exists; must explicitly set option to overwrite.";
                return(status);
            }

            SaveFile(path, fileDefinition.Data).Wait();

            status.Status  = Status.Success;
            status.Message = Constants.Messages.Success;
            return(status);
        }
 public override ContainerActionStatus CreateContainer(ContainerDefinition containerDefinition,
     ContainerCreateOptions options)
 {
     throw new NotImplementedException("Do not use CreateContainer for file system storage.");
 }
示例#4
0
 /// <summary>
 ///     Save a file object into the NStore repository asynchronously. If the target container doesn't exist, create it with
 ///     the provided options.
 /// </summary>
 /// <param name="fileDefinition"></param>
 /// <param name="containerDefinition"></param>
 /// <param name="fileCreateOptions"></param>
 /// <param name="containerCreateOptions"></param>
 /// <returns></returns>
 public abstract Task <FileActionStatus> SaveAsync(FileDefinition fileDefinition,
                                                   ContainerDefinition containerDefinition,
                                                   FileCreateOptions fileCreateOptions,
                                                   ContainerCreateOptions containerCreateOptions);
 public override ContainerActionStatus CreateContainer(ContainerDefinition containerDefinition,
                                                       ContainerCreateOptions options)
 {
     throw new NotImplementedException("Do not use CreateContainer for file system storage.");
 }
示例#6
0
 /// <summary>
 ///     Save a file object into the NStore repository. If the target container doesn't exist, create it with the provided
 ///     options.
 /// </summary>
 /// <param name="fileDefinition"></param>
 /// <param name="containerDefinition"></param>
 /// <param name="fileCreateOptions"></param>
 /// <param name="containerCreateOptions"></param>
 /// <returns></returns>
 public abstract FileActionStatus Save(FileDefinition fileDefinition, ContainerDefinition containerDefinition,
                                       FileCreateOptions fileCreateOptions,
                                       ContainerCreateOptions containerCreateOptions);
示例#7
0
 /// <summary>
 ///     Create a container in the NStore repository.
 /// </summary>
 /// <param name="containerDefinition"></param>
 /// <param name="options"></param>
 /// <returns></returns>
 public abstract ContainerActionStatus CreateContainer(ContainerDefinition containerDefinition,
                                                       ContainerCreateOptions options);
示例#8
0
 /// <summary>
 ///     Save a file object into the NStore repository. If the target container doesn't exist, create it with the provided
 ///     options.
 /// </summary>
 /// <param name="fileDefinition"></param>
 /// <param name="containerDefinition"></param>
 /// <param name="fileCreateOptions"></param>
 /// <param name="containerCreateOptions"></param>
 /// <returns></returns>
 public abstract FileActionStatus Save(FileDefinition fileDefinition, ContainerDefinition containerDefinition,
     FileCreateOptions fileCreateOptions,
     ContainerCreateOptions containerCreateOptions);
示例#9
0
 /// <summary>
 ///     Create a container in the NStore repository.
 /// </summary>
 /// <param name="containerDefinition"></param>
 /// <param name="options"></param>
 /// <returns></returns>
 public abstract ContainerActionStatus CreateContainer(ContainerDefinition containerDefinition,
     ContainerCreateOptions options);
示例#10
0
 /// <summary>
 ///     Save a file object into the NStore repository asynchronously. If the target container doesn't exist, create it with
 ///     the provided options.
 /// </summary>
 /// <param name="fileDefinition"></param>
 /// <param name="containerDefinition"></param>
 /// <param name="fileCreateOptions"></param>
 /// <param name="containerCreateOptions"></param>
 /// <returns></returns>
 public abstract Task<FileActionStatus> SaveAsync(FileDefinition fileDefinition,
     ContainerDefinition containerDefinition,
     FileCreateOptions fileCreateOptions,
     ContainerCreateOptions containerCreateOptions);