Add project files.

This commit is contained in:
Thomas Savine
2020-03-06 16:07:06 +00:00
parent e7b186c7e3
commit 70de9715ce
300 changed files with 43679 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//======================================================================
public static class OpnAppConsole
{
private static readonly String ClassName = "OpnAppConsole";
//-------------------------------------------------------------------
// A p p l i c a t i o n V i e w s
//-------------------------------------------------------------------
public static bool IsViewApplicable(OpnUserContext userContext, Opn.View view)
{
return false;
}
//-------------------------------------------------------------------
// A p p l i c a t i o n M e n u
//-------------------------------------------------------------------
public static bool IsMenuOptionApplicable(OpnUserContext userContext, Opn.MenuOption menuOption)
{
return false;
}
//-------------------------------------------------------------------
}
//======================================================================
}
+24
View File
@@ -0,0 +1,24 @@
using Sarand.Core.Base;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
public class OpnCommand : SacsCommand
{
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
public OpnCommand(ExecuteFn executeFn, CanExecuteFn canExecuteFn = null) :
base(executeFn, canExecuteFn)
{
}
//-------------------------------------------------------------------
}
//=======================================================================
}
+39
View File
@@ -0,0 +1,39 @@
using Sarand.Core.CodeTypes;
using Sarand.Core.Dbas.Base;
using Sarand.Core.Interfaces;
using Sarand.Core.ItemOptions;
using Sarand.Core.ReferenceData;
using Sarand.Core.Security;
using Sarand.Core.UpdateLog;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
public abstract class OpnConsoleHelper
{
//-------------------------------------------------------------------
// Protected construction - use derived objects.
//-------------------------------------------------------------------
// Database.
public abstract ISacsDatabase GetDatabase (OpnSessionContext sessionContext);
//-------------------------------------------------------------------
// Create local consoles.
//-------------------------------------------------------------------
// Retrieve Global Consoles by session context.
public abstract SaSecurityConsole GetSecurityConsole (OpnSessionContext sessionContext);
public abstract SaCodeTypeConsole GetCodeTypeConsole (OpnSessionContext sessionContext);
public abstract SaReferenceDataConsole GetReferenceDataConsole (OpnSessionContext sessionContext);
public abstract SaItemOptionConsole GetItemOptionConsole (OpnSessionContext sessionContext);
public abstract SaInterfaceConsole GetInterfaceConsole (OpnSessionContext sessionContext);
public abstract SaUpdateLogConsole GetUpdateLogConsole (OpnSessionContext sessionContext);
//-------------------------------------------------------------------
}
//=======================================================================
}
+83
View File
@@ -0,0 +1,83 @@
using Sarand.Core.Base;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
public static class Opn
{
//-------------------------------------------------------------------
// Definitions.
public static String Version { get; }
public static String ApplicationCaption { get; } = "Sarand OperationsMgr";
// Option values.
public static String ValueYes { get; } = "YES";
public static String ValueNo { get; } = "NO";
public static List<CodeDesc> ValueYesNo { get; } = new List<CodeDesc>() { new CodeDesc(ValueYes, "Yes"), new CodeDesc(ValueNo, "No") };
//-------------------------------------------------------------------
// Configuration console.
public enum ConfigConsole
{
Generic,
Sarand
}
//-------------------------------------------------------------------
// Application caption type.
public enum CaptionType
{
Text,
Html
}
//-------------------------------------------------------------------
/// <summary>
/// Application menu sections of the main navigation.
/// </summary>
public enum MenuSection
{
Unknown = 0,
}
//-------------------------------------------------------------------
/// <summary>
/// Application menu navigation options.
/// </summary>
public enum MenuOption
{
Unknown = 0,
}
//-------------------------------------------------------------------
/// <summary>
/// Application Views can be displayed by the applications
/// </summary>
public enum View
{
Unknown = -1,
}
//-------------------------------------------------------------------
/// <summary>
/// Instance.
/// </summary>
public enum Instance
{
Unknown = 0,
}
//-------------------------------------------------------------------
/// <summary>
/// SecurityRight.
/// </summary>
public enum SecurityRight
{
}
//-------------------------------------------------------------------
}
//=======================================================================
}
+53
View File
@@ -0,0 +1,53 @@
using Sarand.Core.Dbas.Base;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
public static class OpnGlobals
{
//-------------------------------------------------------------------
// System.
public static OpnSystem System { get; set; } = null;
//-------------------------------------------------------------------
// Console Helper.
public static OpnConsoleHelper ConsoleHelper { get; set; } = null;
//-------------------------------------------------------------------
// Application.
//-------------------------------------------------------------------
// Database.
//-------------------------------------------------------------------
// Security console.
//-------------------------------------------------------------------
// Code Type console.
//-------------------------------------------------------------------
// Reference Data console.
//-------------------------------------------------------------------
// Item Option console.
//-------------------------------------------------------------------
// Interface console.
//-------------------------------------------------------------------
// Update Log console.
//-------------------------------------------------------------------
// Clear globals.
public static void clear ()
{
System = null;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
+38
View File
@@ -0,0 +1,38 @@
using Sarand.Core.Base;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
public class OpnInternals : SacsDisposable
{
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
public OpnInternals (OpnUserContext userContext)
{
UserContext = userContext;
}
protected override void Dispose (bool disposing)
{
}
//-------------------------------------------------------------------
// Session properties.
public OpnUserContext UserContext { get; }
public OpnSessionContext SessionContext { get { return UserContext.SessionContext; } }
//-------------------------------------------------------------------
// Managers.
//-------------------------------------------------------------------
// Consoles.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,58 @@
using Sarand.Core.App;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
public static class OpnResourceConsole
{
//-------------------------------------------------------------------
// Definitions.
public enum TextResource
{
SaBaseCss,
SaBaseJs,
OpnBaseCss,
OpnBaseJs,
JQueryJs,
JQueryUiCss,
JQueryUiJs,
}
public enum ImageResource
{
arrow_down_black_16_png,
arrow_down_black_24_png,
arrow_up_black_16_png,
arrow_up_black_24_png,
star_amber_16_png,
}
//-------------------------------------------------------------------
public static String GetTextResource (TextResource textResource)
{
switch (textResource)
{
case TextResource.SaBaseCss:
return SacsResourceConsole.GetTextResource(SacsResourceConsole.TextResource.SaBaseCss);
case TextResource.SaBaseJs:
return SacsResourceConsole.GetTextResource(SacsResourceConsole.TextResource.SaBaseJs);
//case TextResource.OpnBaseCss:
// return SacsResourceConsole.GetTextResource(SacsResourceConsole.TextResource.SaBaseCss) + Properties.Resources.opn_base_css;
//case TextResource.OpnBaseJs:
// return SacsResourceConsole.GetTextResource(SacsResourceConsole.TextResource.SaBaseJs) + Properties.Resources.opn_base_js;
case TextResource.JQueryJs:
return SacsResourceConsole.GetTextResource(SacsResourceConsole.TextResource.JQueryJs);
case TextResource.JQueryUiCss:
return SacsResourceConsole.GetTextResource(SacsResourceConsole.TextResource.JQueryUiCss);
case TextResource.JQueryUiJs:
return SacsResourceConsole.GetTextResource(SacsResourceConsole.TextResource.JQueryUiJs);
}
return "";
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,62 @@
using Sarand.Core.Base;
using Sarand.Core.Bus;
using Sarand.Core.Security;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
public class OpnSecurityProfile : SaErrorStateItem
{
//-------------------------------------------------------------------
// Data members.
private static readonly String userNameUnknown = "Unknown";
private bool includeHostSecurityProfile = false;
private SaSecurityProfile userSecurityProfile;
private SaSecurityProfile hostSecurityProfile;
private readonly List<TypeCodeDesc> securityRights = new List<TypeCodeDesc>();
//-------------------------------------------------------------------
// Construction.
public OpnSecurityProfile (OpnUserContext userContext, bool includeHostSecurityProfile)
{
this.UserContext = userContext;
this.includeHostSecurityProfile = includeHostSecurityProfile;
}
//-------------------------------------------------------------------
// Properties.
public OpnUserContext UserContext { get; }
//-------------------------------------------------------------------
// Refresh profile.
public void RefreshProfile (SaSecurityConsole securityConsole, SysId userId, List<TypeCodeDesc> securityRights)
{
}
protected void RefreshProfile (SaSecurityConsole securityConsole, SaSecurityProfile hostSecurityProfile)
{
}
private void ClearProfile ()
{
}
//-------------------------------------------------------------------
// User.
public SysId UserId { get; protected set; } = new SysId();
//-------------------------------------------------------------------
// Utilities.
//-------------------------------------------------------------------
// Security rights.
private bool UserHasSecurityRight (Opn.SecurityRight securityRight, SysId dataItemId = null)
{
return false;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
public class OpnSessionContext
{
//-------------------------------------------------------------------
// Construction.
protected OpnSessionContext (ushort index)
{
Index = index;
}
//-------------------------------------------------------------------
// Properties.
public ushort Index { get; }
public Opn.Instance Instance { get; protected set; }
public String InstanceCode { get { return OpnSystem.GetInstanceCode(Instance); } }
//-------------------------------------------------------------------
// Comparison.
public bool Equals (OpnSessionContext sessionContext)
{
if (sessionContext.Index != Index) return false;
if (sessionContext.Instance != Instance) return false;
return true;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,61 @@
using Sarand.Core.Base;
using Sarand.Core.Bus;
using Sarand.Core.Dbas.Base;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
public abstract class OpnSessionProfile
{
//-------------------------------------------------------------------
// Definitions.
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Protected Construction - use derived objects.
protected OpnSessionProfile (OpnSessionContext sessionContext)
{
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// O w n e r O r g a n i s a t i o n
//-------------------------------------------------------------------
public abstract bool SetSelectedOwner (SysId affiliateId);
protected void RefreshOwnerOrganisation(SysId affiliateIdOrganisation)
{
}
//-------------------------------------------------------------------
// U s e r S e s s i o n
//-------------------------------------------------------------------
public bool StartUserSession (SysId userId, List<TypeCodeDesc> securityRights)
{
return true;
}
public void ClearUserSession ()
{
}
//-------------------------------------------------------------------
// Save the user's session parameters.
public bool SaveSessionProfile ()
{
return false;
}
//-------------------------------------------------------------------
// D a t a b a s e
//-------------------------------------------------------------------
// Database Update
public DbUpdateInfo DbUpdateInfo;
}
//=======================================================================
}
@@ -0,0 +1,28 @@
using Sarand.Core.App;
using Sarand.Core.CodeTypes;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
// O P N S y s t e m - C o d e T y p e s
//=======================================================================
public abstract partial class OpnSystem : SacsSystem
{
//===================================================================
// A p p l i c a t i o n C o d e T y p e s
//===================================================================
//-------------------------------------------------------------------
// R e g i s t e r C o d e T y p e s
//-------------------------------------------------------------------
public static void RegisterCodeTypes (SaCodeTypeConsole codeTypeConsole, Opn.Instance instance)
{
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,28 @@
using Sarand.Core.App;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
// O P N S y s t e m - S t a t i c s
//=======================================================================
public abstract partial class OpnSystem : SacsSystem
{
//-------------------------------------------------------------------
// OPN System - Static initialisation.
//-------------------------------------------------------------------
// Code type lists.
//-------------------------------------------------------------------
// Static initialisation.
static OpnSystem ()
{
}
//-------------------------------------------------------------------
}
//=======================================================================
}
+83
View File
@@ -0,0 +1,83 @@
using Sarand.Core.App;
using Sarand.Core.Base;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
public abstract partial class OpnSystem : SacsSystem
{
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Extended logging options.
public enum ExtendedLogginOption
{
SecurityProfile,
DbQueryExecution,
Printing,
}
public static readonly String ExtendedLogging_SecurityProfile = "SecurityProfile";
public static readonly String ExtendedLogging_DbQueryExecution = "DbQueryExecution";
public static readonly String ExtendedLogging_Printing = "Printing";
private List<String> extendedLoggingOptions;
//-------------------------------------------------------------------
// Construction - use derived objects.
protected OpnSystem (PropertySet properties)
{
}
//-------------------------------------------------------------------
// Application definitions.
public static String GetCopyrightNotice (bool html = false)
{
return (html ? "&copy; " : "(c) ") + "2002- " + DateTime.Today.Year + " Sarand Ltd";
}
//-------------------------------------------------------------------
// S y s t e m C o d e s
//-------------------------------------------------------------------
//---------------------------------------------------------------------------
// System code utilities.
public static Opn.Instance GetInstanceForCode (String instanceCode)
{
return Opn.Instance.Unknown;
}
public static String GetInstanceCode (Opn.Instance instance)
{
return null;
}
public static String GetInstanceDesc (Opn.Instance instance)
{
return null;
}
//-------------------------------------------------------------------
// D a t a M a n a g e r s
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// A p p l i c a t i o n P r o p e r t i e s
//-------------------------------------------------------------------
public bool IsExtendedLogging (ExtendedLogginOption extendedLoggingOption)
{
if (extendedLoggingOptions == null) return false;
if (extendedLoggingOption == ExtendedLogginOption.SecurityProfile)
return extendedLoggingOptions.ContainsCI(ExtendedLogging_SecurityProfile);
if (extendedLoggingOption == ExtendedLogginOption.DbQueryExecution)
return extendedLoggingOptions.ContainsCI(ExtendedLogging_DbQueryExecution);
if (extendedLoggingOption == ExtendedLogginOption.Printing)
return extendedLoggingOptions.ContainsCI(ExtendedLogging_Printing);
return false;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
+35
View File
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.App
{
//=======================================================================
public class OpnUserContext
{
//-------------------------------------------------------------------
// Definitions.
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
//-------------------------------------------------------------------
// Properties.
public OpnSessionContext SessionContext { get; protected set; }
//-------------------------------------------------------------------
// Security profile.
//-------------------------------------------------------------------
// Organisation configuration.
//-------------------------------------------------------------------
// Modify properties - internal only.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.Data
{
//=======================================================================
public static class OpnWindwosServiceCrypter
{
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// R e q u e s t D a t a
//-------------------------------------------------------------------
/// <summary>Encrypt request data</summary>
public static String EncryptRequestData (String value)
{
return value;
}
/// <summary>Decrypt request data</summary>
public static String DecryptRequestData (String value)
{
return value;
}
//-------------------------------------------------------------------
// R e s p o n s e D a t a
//-------------------------------------------------------------------
/// <summary>Encrypt response data</summary>
public static String EncryptResponseData (String value)
{
return value;
}
/// <summary>Decrypt response data</summary>
public static String DecryptResponseData (String value)
{
return value;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,34 @@
using Sarand.Core.UpdateLog;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.UpdateLog
{
//=======================================================================
public class OpnUpdateLogItemMonitor : SaUpdateLogItemMonitor
{
//-------------------------------------------------------------------
// Configuration.
//-------------------------------------------------------------------
// Data members.
private readonly Config config;
//-------------------------------------------------------------------
// Construction.
protected OpnUpdateLogItemMonitor (Config config) : base(config)
{
this.config = config;
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// Internal utilities.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,87 @@
using Sarand.Core.Tasks;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Sarand.OperationsMgr.Core.WebService
{
//=======================================================================
// Operations Web Service Client
// Make requests to OperationsMgr Web Service hosted by Windows Service application.
//-----------------------------------------------------------------------
// Threading:
// Ref. https://blog.xamarin.com/getting-started-with-async-await/
//=======================================================================
public class OpnWebServiceClient
{
//-------------------------------------------------------------------
// Definitions.
public class RequestData : SacsTaskData
{
/// <summary>
/// Web Service Request data.
/// <para>Cancellation token can optionally be supplied if available higher up the chain.</para>
/// </summary>
public RequestData (OpnWebServiceInstanceDefinition instanceDefinition, CancellationToken? cancellationToken) :
base(cancellationToken)
{
InstanceDefintion = instanceDefinition;
}
public OpnWebServiceInstanceDefinition InstanceDefintion { get; }
public String Data { get; set; } = "";
}
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
public OpnWebServiceClient ()
{
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
// I s A l i v e
//-------------------------------------------------------------------
public async Task<bool> RequestIsAlive (OpnWebServiceInstanceDefinition instanceDefinition)
{
return false;
}
//-------------------------------------------------------------------
// I t e m C o u n t R e q u e s t
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// Q u e r y L i s t R e q u e s t
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// I t e m L i s t R e q u e s t
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// I t e m D a t a R e q u e s t
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// E x t r a c t I t e m
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// S t o r e I t e m R e q u e s t
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// W e b S e r v i c e R e q u e s t
//-------------------------------------------------------------------
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.WebService
{
//=======================================================================
public static class OpnWebServiceDfn
{
//-------------------------------------------------------------------
// Web Service XML element names.
public class ElementNameData
{
}
public static ElementNameData ElementName { get; } = new ElementNameData();
//-------------------------------------------------------------------
// Web Service XML attribute names.
public class AttributeNameData
{
}
public static AttributeNameData AttributeName { get; } = new AttributeNameData();
//-------------------------------------------------------------------
// Properties.
public static String IsAliveResponse { get; } = "Hello";
public static String StatusSuccess { get; } = "OK";
public static String StatusFatal { get; } = "Fatal";
public static String StatusError { get; } = "Error";
public static String StatusWarning { get; } = "Warning";
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.WebService
{
//=======================================================================
public class OpnWebServiceInstanceDefinition
{
//-------------------------------------------------------------------
// Definitions.
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
public OpnWebServiceInstanceDefinition (String caption, String url)
{
Caption = caption;
URL = url;
}
//-------------------------------------------------------------------
// Properties.
public String Caption { get; }
public String URL { get; }
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,119 @@
using Sarand.Core.Base;
using Sarand.Core.Bus;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.WebService
{
//=======================================================================
public class OpnWebServiceItemData
{
//-------------------------------------------------------------------
// Data members.
private readonly Dictionary<String, String> values = new Dictionary<String, String>();
//-------------------------------------------------------------------
// Construction.
public OpnWebServiceItemData (String itemType)
{
ItemType = itemType;
}
//-------------------------------------------------------------------
// Properties.
public String ItemType { get; }
//-------------------------------------------------------------------
// Population.
public void AddValue (String name, String value)
{
values[name] = value;
}
//-------------------------------------------------------------------
// Value exists.
public bool HasValue<T> (T name)
{
return HasValue(name.ToString());
}
public bool HasValue (string name)
{
return values.ContainsKey(name);
}
//-------------------------------------------------------------------
// String value.
public String GetValue<T> (T name)
{
return GetValue(name.ToString());
}
public String GetValue (string name)
{
return values.GetValue(name, "");
}
//-------------------------------------------------------------------
// SysId value.
public SysId GetIdValue<T> (T name)
{
return GetIdValue(name.ToString());
}
public SysId GetIdValue (string name)
{
return new SysId(StringUtil.ToInt(GetValue(name)));
}
//-------------------------------------------------------------------
// Bool value.
public bool GetBoolValue<T> (T name)
{
return GetBoolValue(name.ToString());
}
public bool GetBoolValue (string name)
{
return StringUtil.ToBool(GetValue(name));
}
// Int value.
public int GetIntValue<T> (T name)
{
return GetIntValue(name.ToString());
}
public int GetIntValue (string name)
{
return StringUtil.ToInt(GetValue(name));
}
// Decimal value.
public decimal GetDecimalValue<T> (T name)
{
return GetDecimalValue(name.ToString());
}
public decimal GetDecimalValue (string name)
{
return StringUtil.ToDecimal(GetValue(name));
}
//-------------------------------------------------------------------
// Date value.
public DateTime GetDateValue<T> (T name)
{
return GetDateValue(name.ToString());
}
public DateTime GetDateValue (string name)
{
return DateUtil.ParseXmlDate(GetValue(name));
}
// DateTime value.
public DateTime GetDateTimeValue<T> (T name)
{
return GetDateTimeValue(name.ToString());
}
public DateTime GetDateTimeValue (string name)
{
return DateUtil.ParseXmlDateTime(GetValue(name));
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,38 @@
using Sarand.Core.Base;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.WebService
{
//=======================================================================
public class OpnWebServiceMessage
{
//-------------------------------------------------------------------
// Construction.
public OpnWebServiceMessage (string context, String code, String message, SaMessageLevel level = SaMessageLevel.Info)
{
Level = level;
Context = context;
Code = code;
Message = message;
}
//-------------------------------------------------------------------
// Properties.
public SaMessageLevel Level { get; }
public string Context { get; }
public string Code { get; }
public string Message { get; }
//-------------------------------------------------------------------
}
//=======================================================================
public static class OpnWebServiceMessageList
{
}
//=======================================================================
}
@@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Linq;
namespace Sarand.OperationsMgr.Core.WebService
{
//=======================================================================
public class OpnWebServiceRequest
{
//-------------------------------------------------------------------
// Definitions.
public enum RequestType
{
Unknown,
IsAlive,
/// <summary>Item count</summary>
Count,
/// <summary>Query list - specific columns, compressed (csv etc) response data</summary>
QueryList,
/// <summary>Item list - full xml for each item with optional associated items.</summary>
ItemList,
/// <summary>Single Item with optional associated items.</summary>
Item,
/// <summary>Validate item properties without update.</summary>
Validate,
/// <summary>Validate properties and store (insert/update) item.</summary>
Store,
/// <summary>Delete item.</summary>
Delete,
}
public enum DataType
{
Unknown,
}
//-------------------------------------------------------------------
/// <summary>
/// Sort column identified by column name with ascending flag.
/// </summary>
public class SortColumnData
{
public SortColumnData (String columnName, bool ascending)
{
ColumnName = columnName;
Ascending = ascending;
}
public String ColumnName { get; }
public bool Ascending { get; }
}
//-------------------------------------------------------------------
// Configuration.
public class Config
{
public bool SoapEnvelope { get; set; }
public String SoapPrefix { get; set; }
public DataType DataType { get; set; }
public RequestType RequestType { get; set; }
public class ContextProperties
{
public bool Commit { get; set; }
public bool Debug { get; set; }
}
public ContextProperties Context { get; } = new ContextProperties();
}
//-------------------------------------------------------------------
// Data members.
private readonly Config config;
//-------------------------------------------------------------------
// Construction.
public OpnWebServiceRequest (Config config)
{
this.config = config;
}
//-------------------------------------------------------------------
// Properties.
public Dictionary<String, String> Filters { get; } = new Dictionary<string, string>();
public List<String> Columns { get; } = new List<String>();
public List<String> SortColumns { get; } = new List<String>();
public XElement ItemElement { get; set; }
//-------------------------------------------------------------------
// D a t a G e n e r a t i o n
//-------------------------------------------------------------------
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,42 @@
using Sarand.Core.Net;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.OperationsMgr.Core.WebService
{
//=======================================================================
public class OpnWebServiceResponse
{
//-------------------------------------------------------------------
// Definitions.
//-------------------------------------------------------------------
// Configuration.
public class Config
{
public DateTime RequestStarted { get; set; } = DateTime.Now;
public DateTime RequestCompleted { get; set; }
public SacsHttpResponseData HttpResponseData { get; set; }
}
//-------------------------------------------------------------------
// Data members.
protected readonly Config config;
//-------------------------------------------------------------------
// Construction.
public OpnWebServiceResponse (Config config)
{
}
public OpnWebServiceResponse (OpnWebServiceResponse serviceResponse)
{
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
}
//=======================================================================
}
+64
View File
@@ -0,0 +1,64 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Sarand.OperationsMgr.Properties {
using System;
using System.Reflection;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Sarand.OperationsMgr.Properties.Resources", typeof(Resources).GetTypeInfo().Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
+101
View File
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
+38
View File
@@ -0,0 +1,38 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.3</TargetFramework>
<RootNamespace>Sarand.OperationsMgr</RootNamespace>
<ApplicationIcon />
</PropertyGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Folder Include="Core\Consoles\" />
<Folder Include="Core\Bus\" />
<Folder Include="Core\Mgr\" />
<Folder Include="Core\Procs\" />
<Folder Include="Resource\html\" />
<Folder Include="Resource\img\" />
<Folder Include="Resource\jquery\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Common-C#\Workspace\SacsCoreBase\SacsCoreBase.csproj" />
</ItemGroup>
</Project>