Archived
Private
Public Access
1
0
This repository has been archived on 2026-02-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ProjectBackup/Projekte/WebDesktop/WebDesktopBackend/LogicResults/LogicResult.cs
2022-09-04 12:45:01 +02:00

230 lines
5.5 KiB
C#

namespace WebDesktopBackend.LogicResults {
internal class LogicResult : ILogicResult
{
public LogicResultState State { get; set; }
public string Message { get; set; }
public bool IsSuccessful
{
get
{
return this.State == LogicResultState.Ok;
}
}
public static LogicResult Ok()
{
return new LogicResult()
{
State = LogicResultState.Ok
};
}
public static LogicResult BadRequest()
{
return new LogicResult()
{
State = LogicResultState.BadRequest
};
}
public static LogicResult BadRequest(string message)
{
return new LogicResult()
{
State = LogicResultState.BadRequest,
Message = message
};
}
public static LogicResult Forbidden()
{
return new LogicResult()
{
State = LogicResultState.Forbidden
};
}
public static LogicResult Forbidden(string message)
{
return new LogicResult()
{
State = LogicResultState.Forbidden,
Message = message
};
}
public static LogicResult NotFound()
{
return new LogicResult()
{
State = LogicResultState.NotFound
};
}
public static LogicResult NotFound(string message)
{
return new LogicResult()
{
State = LogicResultState.NotFound,
Message = message
};
}
public static LogicResult Conflict()
{
return new LogicResult()
{
State = LogicResultState.Conflict
};
}
public static LogicResult Conflict(string message)
{
return new LogicResult()
{
State = LogicResultState.Conflict,
Message = message
};
}
public static LogicResult Forward(LogicResult result)
{
return new LogicResult()
{
State = result.State,
Message = result.Message
};
}
public static LogicResult Forward<T>(ILogicResult<T> result)
{
return new LogicResult()
{
State = result.State,
Message = result.Message
};
}
}
internal class LogicResult<T> : ILogicResult<T>
{
public LogicResultState State { get; set; }
public T Data { get; set; }
public string Message { get; set; }
public bool IsSuccessful
{
get
{
return this.State == LogicResultState.Ok;
}
}
public static LogicResult<T> Ok()
{
return new LogicResult<T>()
{
State = LogicResultState.Ok
};
}
public static LogicResult<T> Ok(T result)
{
return new LogicResult<T>()
{
State = LogicResultState.Ok,
Data = result
};
}
public static LogicResult<T> BadRequest()
{
return new LogicResult<T>()
{
State = LogicResultState.BadRequest
};
}
public static LogicResult<T> BadRequest(string message)
{
return new LogicResult<T>()
{
State = LogicResultState.BadRequest,
Message = message
};
}
public static LogicResult<T> Forbidden()
{
return new LogicResult<T>()
{
State = LogicResultState.Forbidden
};
}
public static LogicResult<T> Forbidden(string message)
{
return new LogicResult<T>()
{
State = LogicResultState.Forbidden,
Message = message
};
}
public static LogicResult<T> NotFound()
{
return new LogicResult<T>()
{
State = LogicResultState.NotFound
};
}
public static LogicResult<T> NotFound(string message)
{
return new LogicResult<T>()
{
State = LogicResultState.NotFound,
Message = message
};
}
public static LogicResult<T> Conflict()
{
return new LogicResult<T>()
{
State = LogicResultState.Conflict
};
}
public static LogicResult<T> Conflict(string message)
{
return new LogicResult<T>()
{
State = LogicResultState.Conflict,
Message = message
};
}
public static LogicResult<T> Forward(ILogicResult result)
{
return new LogicResult<T>()
{
State = result.State,
Message = result.Message
};
}
public static LogicResult<T> Forward<T2>(ILogicResult<T2> result)
{
return new LogicResult<T>()
{
State = result.State,
Message = result.Message
};
}
}
}