public bool CreateDataBase(string dbname)
        {
            if (File.Exists(dbname))
            {
                Console.WriteLine("Database already exists!");
            }

            File.Create(dbname).Dispose();

            CustomPrincipal principal = Thread.CurrentPrincipal as CustomPrincipal;

            try
            {
                Audit.CreationSuccess(principal.Identity.Name);
                Audit.AuthorizationSuccess(principal.Identity.Name, OperationContext.Current.IncomingMessageHeaders.Action);
            }
            catch (ArgumentException ae)
            {
                Audit.CreationFailed(principal.Identity.Name);
                Console.WriteLine(ae.Message);
            }

            proxy = Connect();

            proxy.CreateDatabase(dbname);

            return(true);
        }
        public bool Add(string dbPath, EnergyConsumptionModel item)
        {
            if (!File.Exists(dbPath))
            {
                Console.WriteLine("Database does not exists!");
            }

            bool result = dataBase.Create(dbPath, item);

            CustomPrincipal principal = Thread.CurrentPrincipal as CustomPrincipal;

            try
            {
                Audit.AuthorizationSuccess(principal.Identity.Name, OperationContext.Current.IncomingMessageHeaders.Action);
                Audit.AddSuccess(principal.Identity.Name);
            }
            catch (ArgumentException ae)
            {
                Audit.AddFailed(principal.Identity.Name);
                Console.WriteLine(ae.Message);
            }

            proxy = Connect();
            proxy.Add(dbPath, item);

            return(result);
        }
        private IReplicate Connect()
        {
            string address = "net.tcp://localhost:10000/Endpoint2";

            NetTcpBinding binding = new NetTcpBinding();

            binding.Security.Mode = SecurityMode.Transport;
            binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows;
            binding.Security.Transport.ProtectionLevel      = System.Net.Security.ProtectionLevel.EncryptAndSign;


            ChannelFactory <IReplicate> channel = new ChannelFactory <IReplicate>(binding, address);

            channel.Credentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;

            IReplicate proxy = channel.CreateChannel();

            return(proxy);
        }