Add project files.

This commit is contained in:
2023-04-29 09:17:17 +03:00
commit 62178f1f32
493 changed files with 45863 additions and 0 deletions
+105
View File
@@ -0,0 +1,105 @@
namespace MyOffice.Core;
public enum GeneralExecStatus
{
success,
failure,
not_found
}
public class Exec<TResult> : Exec<TResult, GeneralExecStatus>
where TResult : class
{
public Exec(TResult result, GeneralExecStatus status) : base(result, status)
{
}
public Exec(GeneralExecStatus status) : base(status)
{
}
public Exec() : base(GeneralExecStatus.success)
{
}
public new Exec<TResult> Set(GeneralExecStatus status)
{
Status = status;
return this;
}
public new Exec<TResult> Set(TResult? result)
{
Result = result;
Status = result == null ? GeneralExecStatus.failure : GeneralExecStatus.success;
return this;
}
}
public class Exec<TResult, TStatus>
where TResult : class
where TStatus : Enum
{
public static Exec<TResult, TStatus> Start(TResult result, TStatus status)
{
return new Exec<TResult, TStatus>(result, status);
}
public static Exec<TResult, TStatus> Start(TStatus status)
{
return new Exec<TResult, TStatus>(status);
}
public static Exec<TResult, GeneralExecStatus> StartSuccess()
{
return new Exec<TResult, GeneralExecStatus>(GeneralExecStatus.success);
}
public static Exec<TResult, GeneralExecStatus> StartFailure()
{
return new Exec<TResult, GeneralExecStatus>(GeneralExecStatus.failure);
}
public static Exec<TResult, GeneralExecStatus> StartNotFound()
{
return new Exec<TResult, GeneralExecStatus>(GeneralExecStatus.not_found);
}
public Exec(TResult result, TStatus status)
{
Result = result;
Status = status;
}
public Exec(TStatus status)
{
Status = status;
}
public TResult? Result { get; internal set; }
public TStatus Status { get; internal set; }
public Exec<TResult, TStatus> Set(TResult result, TStatus status)
{
Result = result;
Status = status;
return this;
}
public Exec<TResult, TStatus> Set(TStatus status)
{
Status = status;
return this;
}
public Exec<TResult, TStatus> Set(TResult result)
{
Result = result;
return this;
}
}