Index: /trunk/eCard/eCardMVC/adMoto.Payments.Test/adMoto.Payments.Test.csproj
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Test/adMoto.Payments.Test.csproj (revision 984)
+++ /trunk/eCard/eCardMVC/adMoto.Payments.Test/adMoto.Payments.Test.csproj (revision 985)
@@ -84,7 +84,8 @@
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="TestRunner.cs" />
+    <Compile Include="UI\eCardValidationTests.cs" />
     <Compile Include="UI\UIData.cs" />
     <Compile Include="UI\UIHelper.cs" />
-    <Compile Include="Utils\eCardDataTests.cs" />
+    <Compile Include="Utils\MerchantHelperTests.cs" />
     <Compile Include="Utils\PaymentUtilsTests.cs" />
     <Compile Include="Controllers\MerchantControllerTests.cs" />
Index: /trunk/eCard/eCardMVC/adMoto.Payments.Test/Utils/MerchantHelperTests.cs
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Test/Utils/MerchantHelperTests.cs (revision 985)
+++ /trunk/eCard/eCardMVC/adMoto.Payments.Test/Utils/MerchantHelperTests.cs (revision 985)
@@ -0,0 +1,315 @@
+﻿using System;
+using adMoto.Payments.Core;
+using adMoto.Payments.Core.Data;
+using adMoto.Payments.Test.Fakes;
+using adMoto.Payments.Web.Models;
+using NUnit.Framework;
+
+namespace adMoto.Payments.Test.Utils
+{
+    [TestFixture]
+    // ReSharper disable InconsistentNaming
+    public class MerchantHelperTests
+    // ReSharper restore InconsistentNaming
+    {
+        private readonly TestDataHelper _testDataHelper = new TestDataHelper();
+
+        [Test]
+        [Category("Unit")]
+        public void SetHash_Returns_ZlyHash_When_Passing_Invalid_Merchant()
+        {
+            //Arrange
+            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
+            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
+            repPayment.Insert(payment);
+
+            var ecarddata = new MerchantHelper(repPayment);
+
+            var merchant = new Merchant
+                               {
+                                  Payment = payment,
+                                  Id = "171485000",
+                                  Password = "ashSeth2",
+                               };
+
+            //Act
+            var result = ecarddata.SetHash(merchant);
+
+            //Assert
+            Assert.That(result, Is.EqualTo(Merchant.BAD_HASH));
+        }
+
+        [Test]
+        [Category("Unit")]
+        public void SetHash_Returns_PaymentErrorInfo_When_Passing_Invalid_Payment()
+        {
+            //Arrange
+            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
+            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
+
+            repPayment.Insert(payment);
+
+            var ecarddata = new MerchantHelper(repPayment);
+
+            var merchant = new Merchant
+                               {
+                                   Payment = new PlatnosciEcard
+                                                 {
+                                                    ORDERDESCRIPTION = "dd",
+                                                    IDFaktury = 21,
+                                                    Data = DateTime.Now
+                                                 },
+                                   Id = "171485000",
+                                   Password = "ashSeth2",
+                               };
+
+            //Act
+            var result = ecarddata.SetHash(merchant);
+
+            //Assert
+            Assert.That(result, Is.EqualTo(Merchant.HASH_ERROR_INFO));
+        }
+        [Test]
+        [Category("Unit")]
+        public void SetHash_Returns_Correct_Hash_When_Passing_Valid_Data()
+        {
+            //Arrange
+            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
+            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
+            payment.AMOUNT = 229;
+            payment.CURRENCY = PaymentsUtils.PLN;
+
+            repPayment.Insert(payment);
+
+            var ecarddata = new MerchantHelper(repPayment);
+
+            var merchant = new Merchant
+                               {
+                                   Payment = payment,
+                                   Id = "171485000",
+                                   Password = "ashSeth2",
+                               };
+
+            //Act
+            var result = ecarddata.SetHash(merchant);
+
+            //Assert
+            Assert.That(result.Length, Is.GreaterThan(30));
+        }
+
+        [Test]
+        [Category("Unit")]
+        public void SetHash_Returns_Bad_Hash_When_Invoice_Amount_Is_Zero()
+        {
+            //Arrange
+            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
+            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
+            payment.AMOUNT = 0;
+            payment.CURRENCY = PaymentsUtils.PLN;
+
+            repPayment.Insert(payment);
+
+            var ecarddata = new MerchantHelper(repPayment);
+
+            var merchant = new Merchant
+                               {
+                                   Payment = payment,
+                                   Id = "171485000",
+                                   Password = "ashSeth2",
+                               };
+
+            //Act
+            var result = ecarddata.SetHash(merchant);
+
+            //Assert
+            Assert.That(result, Is.EqualTo(Merchant.BAD_HASH));
+        }
+
+        [Test]
+        [Category("Unit")]
+        public void SetHash_Returns_Bad_Hash_When_Password_Is_Wrong()
+        {
+            //Arrange
+            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
+            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
+            payment.AMOUNT = 229;
+            payment.CURRENCY = PaymentsUtils.PLN;
+
+            repPayment.Insert(payment);
+
+            var ecarddata = new MerchantHelper(repPayment);
+
+            var merchant = new Merchant
+                               {
+                                   Payment = payment,
+                                   Id = "TEST",
+                                   Password = "test",
+                               };
+
+            //Act
+            var result = ecarddata.SetHash(merchant);
+
+            //Assert
+            Assert.That(result, Is.EqualTo(Merchant.BAD_HASH));
+        }
+
+        [Test]
+        [Category("Unit")]
+        public void SetHash_Returns_Correct_Hash_When_Payment_Amount_Is_Less_Then_100()
+        {
+            //Arrange
+            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
+            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
+            payment.AMOUNT = 11;
+            payment.CURRENCY = PaymentsUtils.PLN;
+
+            repPayment.Insert(payment);
+
+            var ecarddata = new MerchantHelper(repPayment);
+
+            var merchant = new Merchant
+                               {
+                                   Payment = payment,
+                                   Id = "171485000",
+                                   Password = "ashSeth2",
+                               };
+
+            //Act
+            var result = ecarddata.SetHash(merchant);
+
+            //Assert
+            Assert.That(result.Length, Is.GreaterThan(30));
+        }
+
+        [Test]
+        [Category("Unit")]
+        public void Create_Merchant_Data_Returns_Invoice_Correct_Amount_When_Merchant_Is_Valid()
+        {
+            //Arrange
+            const int idFaktury = 12345;
+            const int amountInPln = 5000;
+            const int amountInEur = 1300;
+
+            var repVPayment = new Repository<Invoice>(new FakeDataContext());
+            var invoice = _testDataHelper.CreateForeignInvoice(idFaktury, "nip1", "abc/2009", amountInPln, 0, amountInEur, "EUR");
+            repVPayment.Insert(invoice);
+
+            var payer = _testDataHelper.CreatePayer(idFaktury, "test", "test");
+            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
+            var eCardData = new MerchantHelper(repPayment);
+
+            //Act
+            eCardData.CreateMerchantData(invoice, payer, "pl", "ahaah");
+            var payment = repPayment.FindOne(i => i.IDFaktury == idFaktury);
+
+            //Assert
+            Assert.That(payment.AMOUNT, Is.EqualTo(amountInEur * 100));
+        }
+
+        [Test]
+        [Category("Unit")]
+        public void Create_Merchant_Data_Returns_Bad_Hash_When_Invoice_Amount_Is_Zero()
+        {
+            //Arrange
+            var ecarddata = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
+            var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 0, 2);
+
+            var payer = _testDataHelper.CreatePayer(123, "test", "test");
+
+            //Act
+            var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd");
+
+            //Assert
+            Assert.That(result.Error, Is.EqualTo("hash"));  //dla wartosci amount=0 eCard zwroci hash o wartości "zlyHash"
+        }
+
+        [Test]
+        [Category("Unit")]
+        public void Create_Merchant_Data_Returns_Error_When_Orderdescription_Is_Not_Valid()
+        {
+            //Arrange
+            var ecarddata = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
+            var invoice = _testDataHelper.CreateInvoice(123, "nip", "", 200, 2);
+
+            var payer = _testDataHelper.CreatePayer(123, "test", "test");
+
+            //Act
+            var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd");
+
+            //Assert
+            System.Diagnostics.Debug.WriteLine("Error: " + result.Error + " is not valid.");
+            Assert.That(result.Error, Is.EqualTo("orderdescription"));
+        }
+
+        [Test]
+        [Category("Unit")]
+        public void Create_Merchant_Data_Returns_Error_When_Name_Is_Not_Valid()
+        {
+            //Arrange
+            var ecarddata = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
+            var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 200, 2);
+
+            var payer = _testDataHelper.CreatePayer(123, "", "test");
+
+            //Act
+            var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd");
+
+            //Assert
+            System.Diagnostics.Debug.WriteLine("Error: " + result.Error + " is not valid.");
+            Assert.That(result.Error, Is.EqualTo("name"));
+        }
+
+        [Test]
+        [Category("Unit")]
+        public void Create_Merchant_Data_Returns_Error_When_Surname_Is_Not_Valid()
+        {
+            //Arrange
+            var ecarddata = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
+            var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 200, 2);
+
+            var payer = _testDataHelper.CreatePayer(123, "test", "");
+
+            //Act
+            var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd");
+
+            //Assert
+            System.Diagnostics.Debug.WriteLine("Error: " + result.Error + " is not valid.");
+            Assert.That(result.Error, Is.EqualTo("surname"));
+        }
+
+        [Test]
+        [Category("Unit")]
+        public void Create_Merchant_Data_Returns_Valid_Merchnt_When_All_Data_Are_Correct()
+        {
+            //Arrange
+            var ecarddata = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
+            var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 200, 2);
+
+            var payer = _testDataHelper.CreatePayer(123, "test", "test");
+
+            //Act
+            var result2 = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd");
+
+            //Assert
+            System.Diagnostics.Debug.WriteLine("Wszystkie dane sa poprawne!!");
+            Assert.That(result2.Error, Is.EqualTo(null));
+        }
+
+        [Test]
+        [Category("Unit")]
+        public void Get_Url_Returns_Correct_Ecard_Url()
+        {
+            //Arrange
+            var payment = new PlatnosciEcard { ORDERDESCRIPTION = "abc/2009" };
+            var merchant = new Merchant { Payment = payment, Id = "ABCD" };
+            var eCardData = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
+
+            //Act
+            var result = eCardData.GetUrl(merchant);
+
+            //Assert
+            System.Diagnostics.Debug.WriteLine("eCard url:" + result + " " + merchant);
+            Assert.That(result, Is.Not.EqualTo(""));
+        }
+    }
+}
Index: /unk/eCard/eCardMVC/adMoto.Payments.Test/Utils/eCardDataTests.cs
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Test/Utils/eCardDataTests.cs (revision 984)
+++  (revision )
@@ -1,315 +1,0 @@
-﻿using System;
-using adMoto.Payments.Core;
-using adMoto.Payments.Core.Data;
-using adMoto.Payments.Test.Fakes;
-using adMoto.Payments.Web.Models;
-using NUnit.Framework;
-
-namespace adMoto.Payments.Test.Utils
-{
-    [TestFixture]
-    // ReSharper disable InconsistentNaming
-    public class eCardDataTests
-    // ReSharper restore InconsistentNaming
-    {
-        private readonly TestDataHelper _testDataHelper = new TestDataHelper();
-
-        [Test]
-        [Category("Unit")]
-        public void SetHash_Returns_ZlyHash_When_Passing_Invalid_Merchant()
-        {
-            //Arrange
-            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
-            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
-            repPayment.Insert(payment);
-
-            var ecarddata = new MerchantHelper(repPayment);
-
-            var merchant = new Merchant
-                               {
-                                  Payment = payment,
-                                  Id = "171485000",
-                                  Password = "ashSeth2",
-                               };
-
-            //Act
-            var result = ecarddata.SetHash(merchant);
-
-            //Assert
-            Assert.That(result, Is.EqualTo(Merchant.BAD_HASH));
-        }
-
-        [Test]
-        [Category("Unit")]
-        public void SetHash_Returns_PaymentErrorInfo_When_Passing_Invalid_Payment()
-        {
-            //Arrange
-            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
-            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
-
-            repPayment.Insert(payment);
-
-            var ecarddata = new MerchantHelper(repPayment);
-
-            var merchant = new Merchant
-                               {
-                                   Payment = new PlatnosciEcard
-                                                 {
-                                                    ORDERDESCRIPTION = "dd",
-                                                    IDFaktury = 21,
-                                                    Data = DateTime.Now
-                                                 },
-                                   Id = "171485000",
-                                   Password = "ashSeth2",
-                               };
-
-            //Act
-            var result = ecarddata.SetHash(merchant);
-
-            //Assert
-            Assert.That(result, Is.EqualTo(Merchant.HASH_ERROR_INFO));
-        }
-        [Test]
-        [Category("Unit")]
-        public void SetHash_Returns_Correct_Hash_When_Passing_Valid_Data()
-        {
-            //Arrange
-            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
-            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
-            payment.AMOUNT = 229;
-            payment.CURRENCY = PaymentsUtils.PLN;
-
-            repPayment.Insert(payment);
-
-            var ecarddata = new MerchantHelper(repPayment);
-
-            var merchant = new Merchant
-                               {
-                                   Payment = payment,
-                                   Id = "171485000",
-                                   Password = "ashSeth2",
-                               };
-
-            //Act
-            var result = ecarddata.SetHash(merchant);
-
-            //Assert
-            Assert.That(result.Length, Is.GreaterThan(30));
-        }
-
-        [Test]
-        [Category("Unit")]
-        public void SetHash_Returns_Bad_Hash_When_Invoice_Amount_Is_Zero()
-        {
-            //Arrange
-            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
-            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
-            payment.AMOUNT = 0;
-            payment.CURRENCY = PaymentsUtils.PLN;
-
-            repPayment.Insert(payment);
-
-            var ecarddata = new MerchantHelper(repPayment);
-
-            var merchant = new Merchant
-                               {
-                                   Payment = payment,
-                                   Id = "171485000",
-                                   Password = "ashSeth2",
-                               };
-
-            //Act
-            var result = ecarddata.SetHash(merchant);
-
-            //Assert
-            Assert.That(result, Is.EqualTo(Merchant.BAD_HASH));
-        }
-
-        [Test]
-        [Category("Unit")]
-        public void SetHash_Returns_Bad_Hash_When_Password_Is_Wrong()
-        {
-            //Arrange
-            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
-            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
-            payment.AMOUNT = 229;
-            payment.CURRENCY = PaymentsUtils.PLN;
-
-            repPayment.Insert(payment);
-
-            var ecarddata = new MerchantHelper(repPayment);
-
-            var merchant = new Merchant
-                               {
-                                   Payment = payment,
-                                   Id = "TEST",
-                                   Password = "test",
-                               };
-
-            //Act
-            var result = ecarddata.SetHash(merchant);
-
-            //Assert
-            Assert.That(result, Is.EqualTo(Merchant.BAD_HASH));
-        }
-
-        [Test]
-        [Category("Unit")]
-        public void SetHash_Returns_Correct_Hash_When_Payment_Amount_Is_Less_Then_100()
-        {
-            //Arrange
-            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
-            var payment = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1);
-            payment.AMOUNT = 11;
-            payment.CURRENCY = PaymentsUtils.PLN;
-
-            repPayment.Insert(payment);
-
-            var ecarddata = new MerchantHelper(repPayment);
-
-            var merchant = new Merchant
-                               {
-                                   Payment = payment,
-                                   Id = "171485000",
-                                   Password = "ashSeth2",
-                               };
-
-            //Act
-            var result = ecarddata.SetHash(merchant);
-
-            //Assert
-            Assert.That(result.Length, Is.GreaterThan(30));
-        }
-
-        [Test]
-        [Category("Unit")]
-        public void Create_Merchant_Data_Returns_Invoice_Correct_Amount_When_Merchant_Is_Valid()
-        {
-            //Arrange
-            const int idFaktury = 12345;
-            const int amountInPln = 5000;
-            const int amountInEur = 1300;
-
-            var repVPayment = new Repository<Invoice>(new FakeDataContext());
-            var invoice = _testDataHelper.CreateForeignInvoice(idFaktury, "nip1", "abc/2009", amountInPln, 0, amountInEur, "EUR");
-            repVPayment.Insert(invoice);
-
-            var payer = _testDataHelper.CreatePayer(idFaktury, "test", "test");
-            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
-            var eCardData = new MerchantHelper(repPayment);
-
-            //Act
-            eCardData.CreateMerchantData(invoice, payer, "pl", "ahaah");
-            var payment = repPayment.FindOne(i => i.IDFaktury == idFaktury);
-
-            //Assert
-            Assert.That(payment.AMOUNT, Is.EqualTo(amountInEur * 100));
-        }
-
-        [Test]
-        [Category("Unit")]
-        public void Create_Merchant_Data_Returns_Bad_Hash_When_Invoice_Amount_Is_Zero()
-        {
-            //Arrange
-            var ecarddata = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
-            var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 0, 2);
-
-            var payer = _testDataHelper.CreatePayer(123, "test", "test");
-
-            //Act
-            var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd");
-
-            //Assert
-            Assert.That(result.Error, Is.EqualTo("hash"));  //dla wartosci amount=0 eCard zwroci hash o wartości "zlyHash"
-        }
-
-        [Test]
-        [Category("Unit")]
-        public void Create_Merchant_Data_Returns_Error_When_Orderdescription_Is_Not_Valid()
-        {
-            //Arrange
-            var ecarddata = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
-            var invoice = _testDataHelper.CreateInvoice(123, "nip", "", 200, 2);
-
-            var payer = _testDataHelper.CreatePayer(123, "test", "test");
-
-            //Act
-            var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd");
-
-            //Assert
-            System.Diagnostics.Debug.WriteLine("Error: " + result.Error + " is not valid.");
-            Assert.That(result.Error, Is.EqualTo("orderdescription"));
-        }
-
-        [Test]
-        [Category("Unit")]
-        public void Create_Merchant_Data_Returns_Error_When_Name_Is_Not_Valid()
-        {
-            //Arrange
-            var ecarddata = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
-            var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 200, 2);
-
-            var payer = _testDataHelper.CreatePayer(123, "", "test");
-
-            //Act
-            var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd");
-
-            //Assert
-            System.Diagnostics.Debug.WriteLine("Error: " + result.Error + " is not valid.");
-            Assert.That(result.Error, Is.EqualTo("name"));
-        }
-
-        [Test]
-        [Category("Unit")]
-        public void Create_Merchant_Data_Returns_Error_When_Surname_Is_Not_Valid()
-        {
-            //Arrange
-            var ecarddata = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
-            var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 200, 2);
-
-            var payer = _testDataHelper.CreatePayer(123, "test", "");
-
-            //Act
-            var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd");
-
-            //Assert
-            System.Diagnostics.Debug.WriteLine("Error: " + result.Error + " is not valid.");
-            Assert.That(result.Error, Is.EqualTo("surname"));
-        }
-
-        [Test]
-        [Category("Unit")]
-        public void Create_Merchant_Data_Returns_Valid_Merchnt_When_All_Data_Are_Correct()
-        {
-            //Arrange
-            var ecarddata = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
-            var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 200, 2);
-
-            var payer = _testDataHelper.CreatePayer(123, "test", "test");
-
-            //Act
-            var result2 = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd");
-
-            //Assert
-            System.Diagnostics.Debug.WriteLine("Wszystkie dane sa poprawne!!");
-            Assert.That(result2.Error, Is.EqualTo(null));
-        }
-
-        [Test]
-        [Category("Unit")]
-        public void Get_Url_Returns_Correct_Ecard_Url()
-        {
-            //Arrange
-            var payment = new PlatnosciEcard { ORDERDESCRIPTION = "abc/2009" };
-            var merchant = new Merchant { Payment = payment, Id = "ABCD" };
-            var eCardData = new MerchantHelper(new Repository<PlatnosciEcard>(new FakeDataContext()));
-
-            //Act
-            var result = eCardData.GetUrl(merchant);
-
-            //Assert
-            System.Diagnostics.Debug.WriteLine("eCard url:" + result + " " + merchant);
-            Assert.That(result, Is.Not.EqualTo(""));
-        }
-    }
-}
Index: /trunk/eCard/eCardMVC/adMoto.Payments.Test/Controllers/eCardControllerTests.cs
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Test/Controllers/eCardControllerTests.cs (revision 984)
+++ /trunk/eCard/eCardMVC/adMoto.Payments.Test/Controllers/eCardControllerTests.cs (revision 985)
@@ -20,5 +20,5 @@
         private readonly TestDataHelper _testDataHelper = new TestDataHelper();
         private IRepository<PotwierdzeniaEcard> _repConfirm;
-        private IRepository<PlatnosciEcard> _repPayment;
+       // private IRepository<PlatnosciEcard> _repPayment;
         private const string CODE_OK = "payment_deposited";        //transakcja potwierdzona do rozliczenia
         private const string CODE_BAD = "payment_declined";        //transakcja odrzucona 
@@ -151,4 +151,5 @@
             Assert.That(result.Content.Contains("ArgumentException"), "Response should contain SqlException");
         }
+
         /*[Test]
         [Category("Unit")]
Index: /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/eCardValidationTests.cs
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/eCardValidationTests.cs (revision 985)
+++ /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/eCardValidationTests.cs (revision 985)
@@ -0,0 +1,235 @@
+﻿using NUnit.Framework;
+using WatiN.Core;
+
+namespace adMoto.Payments.Test.UI
+{
+    [TestFixture]
+    public class eCardValidationTests
+    {
+        private readonly UIHelper _uiHelper = new UIHelper();
+        private static string adres = UIHelper.ConfirmForm;
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentNullException_When_Passing_Merchantnumber_Is_Null()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("MERCHANTNUMBER")).TypeText("");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("MERCHANTNUMBER"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentException_When_Passing_Merchantnumber_Longer_Than_Fifty_Characters()
+        {
+            var merchantnumberTooLong = "123456789012345678901234567890123456789012345678901234";
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("MERCHANTNUMBER")).TypeText(merchantnumberTooLong);
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("MERCHANTNUMBER"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+                
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentNullException_When_Passing_OrderNumber_Is_Null()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("ORDERNUMBER")).TypeText("");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("ORDERNUMBER"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+        
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_FormatException_When_Passing_OrderNumber_In_Wrong_Format()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("ORDERNUMBER")).TypeText("aaaaaaaa");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("FormatException"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+        
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentException_When_Passing_ValidationCode_Longer_Than_Three_Characters()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("VALIDATIONCODE")).TypeText("1111");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("VALIDATIONCODE"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+        
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentNullException_When_Passing_ApprovalCode_Is_Null_And_ValidationCode_Is_Correct()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("VALIDATIONCODE")).TypeText("000");
+            ie.TextField(Find.ByName("APPROVALCODE")).TypeText("");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("APPROVALCODE"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentNullException_When_Passing_Authtime_Is_Null()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("AUTHTIME")).TypeText("");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("AUTHTIME"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_FormatException_When_Passing_Authtime_Is_Wrong_Format()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("AUTHTIME")).TypeText("aaaaaa");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("FormatException"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_SqlTypeException_When_Passing_Authtime_Is_Overflow()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("AUTHTIME")).TypeText("0001-01-01 00:00:00");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("SqlTypeException"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentException_When_Passing_Bin_Longer_Than_Six_Characters()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("BIN")).TypeText("11111111");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("BIN"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_FormatException_When_Passing_EventType_In_Wrong_Format()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("EVENTTYPE")).TypeText("212");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("FormatException"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_FormatException_When_Passing_PaymentNumber_In_Wrong_Format()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("PAYMENTNUMBER")).TypeText("AAAA");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("FormatException"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentException_When_Passing_PreviousState_Longer_Than_Fifty_Characters()
+        {
+            var previousstateTooLong = "123456789012345678901234567890123456789012345678901234";
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("PREVIOUSSTATE")).TypeText(previousstateTooLong);
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("PREVIOUSSTATE"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentException_When_Passing_CurrentState_Longer_Than_Fifty_Characters()
+        {
+            var currentstateTooLong = "123456789012345678901234567890123456789012345678901234";
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("CURRENTSTATE")).TypeText(currentstateTooLong);
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("CURRENTSTATE"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentException_When_Passing_ApprovalCode_Longer_Than_Fifty_Characters()
+        {
+            var approvalcodeTooLong = "123456789012345678901234567890123456789012345678901234";
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("APPROVALCODE")).TypeText(approvalcodeTooLong);
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("APPROVALCODE"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentException_When_Passing_CommType_Longer_Than_Fifty_Characters()
+        {
+            var commtypeTooLong = "123456789012345678901234567890123456789012345678901234";
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("COMMTYPE")).TypeText(commtypeTooLong);
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("COMMTYPE"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentException_When_Passing_Type_Longer_Than_Two_Characters()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("TYPE")).TypeText("11222");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("TYPE"));
+            _uiHelper.CloseWebBrowser(ie);
+        }
+
+        [Test]
+        [Category("UI")]
+        public void Status_Returns_False_And_Throws_ArgumentException_When_Passing_WithCvc_Longer_Than_Three_Characters()
+        {
+            var ie = new IE(adres);
+            ie.TextField(Find.ByName("WITHCVC")).TypeText("1112");
+            ie.Button(Find.ById("dalej")).Click();
+            Assert.IsTrue(ie.ContainsText("FALSE"));
+            Assert.IsTrue(ie.ContainsText("WITHCVC"));
+            _uiHelper.CloseWebBrowser(ie);
+        }      
+       
+    }
+}
Index: /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/UIHelper.cs
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/UIHelper.cs (revision 984)
+++ /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/UIHelper.cs (revision 985)
@@ -8,4 +8,5 @@
 using adMoto.Payments.Core;
 using adMoto.Payments.Core.Interfaces;
+using WatiN.Core;
 
 namespace adMoto.Payments.Test.UI
@@ -19,5 +20,7 @@
         private UIData uiData;
         private string nip = "test";    //testowy klient o id 76131 
-        private string numer_faktury = "1/SLJ/1";
+        private string numer_faktury = "1/SLJ/1";        
+        public static string LoginSite = "http://localhost:3646/pl/Account/LogOn";
+        public static string ConfirmForm = "http://localhost:3646/pl/Platnosc/Form"; 
 
         public UIData CreateAndAddTestRecordToRepository(int amount)
@@ -87,5 +90,11 @@
                 _repPayment.Delete(payment);
         }
-       
+        
+        public void CloseWebBrowser(IE ie)
+        {
+            ie.ForceClose();
+            ie.Close();
+            ie.Dispose();
+        }       
     }
 }
Index: /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/ValidationTests.cs
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/ValidationTests.cs (revision 984)
+++ /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/ValidationTests.cs (revision 985)
@@ -7,5 +7,6 @@
     public class ValidationTests
     {
-        private readonly UIHelper _uidata = new UIHelper(); 
+        private readonly UIHelper _uiHelper = new UIHelper();
+        private static string adres = UIHelper.LoginSite;
 
         [Test]
@@ -13,9 +14,9 @@
         public void Validates_When_Firstname_Is_Too_Long()
         {
-            var uiData = _uidata.CreateAndAddTestRecordToRepository(2);
+            var uiData = _uiHelper.CreateAndAddTestRecordToRepository(2);
 
             const string test = "test";
 
-            var ie = new IE("http://localhost:3646/pl/Account/LogOn");
+            var ie = new IE(adres);
             ie.TextField(Find.ByName("numerFaktury")).TypeText(uiData.Test_numer_faktury);
             ie.TextField(Find.ByName("nip")).TypeText(uiData.Test_nip);
@@ -26,10 +27,8 @@
             ie.Button(Find.ById("place")).Click();
             Assert.IsTrue(ie.ContainsText("Zbyt długa nazwa"));
-            ie.ForceClose();
-            ie.Close();
-            ie.Dispose();
+            _uiHelper.CloseWebBrowser(ie);
 
             //usuniecie rekordu z tabel: FAKTURY, FAKTURA_DETAILS
-            _uidata.DeleteTestRecordsFromRepository(uiData);
+            _uiHelper.DeleteTestRecordsFromRepository(uiData);
         }
 
@@ -38,9 +37,9 @@
         public void Validates_When_Surname_Is_Too_Long()
         {
-            var uiData = _uidata.CreateAndAddTestRecordToRepository(2);
+            var uiData = _uiHelper.CreateAndAddTestRecordToRepository(2);
 
             const string test = "test";
 
-            var ie = new IE("http://localhost:3646/pl/Account/LogOn");
+            var ie = new IE(adres);
             ie.TextField(Find.ByName("numerFaktury")).TypeText(uiData.Test_numer_faktury);
             ie.TextField(Find.ByName("nip")).TypeText(uiData.Test_nip);
@@ -51,10 +50,8 @@
             ie.Button(Find.ById("place")).Click();
             Assert.IsTrue(ie.ContainsText("Zbyt długa nazwa"));
-            ie.ForceClose();
-            ie.Close();
-            ie.Dispose();
+            _uiHelper.CloseWebBrowser(ie);
 
             //usuniecie rekordu z tabel: FAKTURY, FAKTURA_DETAILS
-            _uidata.DeleteTestRecordsFromRepository(uiData);
+            _uiHelper.DeleteTestRecordsFromRepository(uiData);
         }
 
@@ -63,9 +60,9 @@
         public void Validates_When_LastName_Is_Empty()
         {
-            var uiData = _uidata.CreateAndAddTestRecordToRepository(2);
+            var uiData = _uiHelper.CreateAndAddTestRecordToRepository(2);
 
             const string test = "test";
 
-            var ie = new IE("http://localhost:3646/pl/Account/LogOn");
+            var ie = new IE(adres);
             ie.TextField(Find.ByName("numerFaktury")).TypeText(uiData.Test_numer_faktury);
             ie.TextField(Find.ByName("nip")).TypeText(uiData.Test_nip);
@@ -76,10 +73,8 @@
             ie.Button(Find.ById("place")).Click();
             Assert.IsTrue(ie.ContainsText("Proszę podać"));
-            ie.ForceClose();
-            ie.Close();
-            ie.Dispose();
+            _uiHelper.CloseWebBrowser(ie);
 
             //usuniecie rekordu z tabel: FAKTURY, FAKTURA_DETAILS
-            _uidata.DeleteTestRecordsFromRepository(uiData);
+            _uiHelper.DeleteTestRecordsFromRepository(uiData);
         }
     }
Index: /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/AuthenticationTests.cs
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/AuthenticationTests.cs (revision 984)
+++ /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/AuthenticationTests.cs (revision 985)
@@ -1,4 +1,5 @@
 ﻿using NUnit.Framework;
 using WatiN.Core;
+using System.Configuration;
 
 namespace adMoto.Payments.Test.UI
@@ -7,36 +8,32 @@
     public class AuthenticationTests
     {
-        private readonly UIHelper _uidata = new UIHelper(); 
-
+        private readonly UIHelper _uiHelper = new UIHelper();
+        private static string adres = UIHelper.LoginSite;
+        
         [Test]
         [Category("UI")]
         public void Can_Not_Login_When_Using_InValid_Login_Information()
         {
-            var ie = new IE("http://localhost:3646/pl/Account/LogOn");
+            var ie = new IE(adres);
             ie.TextField(Find.ByName("numerFaktury")).TypeText("");
             ie.TextField(Find.ByName("nip")).TypeText("");
             ie.Button(Find.ById("loguj")).Click();
             Assert.IsTrue(ie.ContainsText("Logowanie nie powiodło się"));
-            ie.ForceClose();
-            ie.Close();
-            ie.Dispose();
+            _uiHelper.CloseWebBrowser(ie);
         }
-
+        
         [Test]
         [Category("UI")]
         public void Can_Login_When_Using_Correct_Login_Information()
         {
-            var uiData = _uidata.CreateAndAddTestRecordToRepository(0);
-            
-            var ie = new IE("http://localhost:3646/pl/Account/LogOn");
+            var uiData = _uiHelper.CreateAndAddTestRecordToRepository(0);
+
+            var ie = new IE(adres);
             ie.TextField(Find.ByName("numerFaktury")).TypeText(uiData.Test_numer_faktury);
             ie.TextField(Find.ByName("nip")).TypeText(uiData.Test_nip);
             ie.Button(Find.ById("loguj")).Click();
             Assert.IsTrue(ie.ContainsText("Szczegóły zlecenia"));
-            ie.ForceClose();
-            ie.Close();
-            ie.Dispose();
-
-            _uidata.DeleteTestRecordsFromRepository(uiData);
+            _uiHelper.CloseWebBrowser(ie);
+            _uiHelper.DeleteTestRecordsFromRepository(uiData);
         }
     }
Index: /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/MerchantTests.cs
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/MerchantTests.cs (revision 984)
+++ /trunk/eCard/eCardMVC/adMoto.Payments.Test/UI/MerchantTests.cs (revision 985)
@@ -7,5 +7,6 @@
     public class MerchantTests
     {
-        private readonly UIHelper _uidata = new UIHelper(); 
+        private readonly UIHelper _uiHelper = new UIHelper();
+        private static string adres = UIHelper.LoginSite;
 
         [Test]
@@ -14,5 +15,5 @@
         {
             //dodanie testowego rekordu do tabel: FAKTURY, FAKTURA_DETAILS
-            var uiData = _uidata.CreateAndAddTestRecordToRepository(2);
+            var uiData = _uiHelper.CreateAndAddTestRecordToRepository(2);
             
             const string test = "test";
@@ -20,5 +21,5 @@
             uiData.Test_firstname = test;
 
-            var ie = new IE("http://localhost:3646/pl/Account/LogOn");
+            var ie = new IE(adres);
             ie.TextField(Find.ByName("numerFaktury")).TypeText(uiData.Test_numer_faktury);
             ie.TextField(Find.ByName("nip")).TypeText(uiData.Test_nip);
@@ -30,13 +31,11 @@
             Assert.IsTrue(ie.ContainsText("Imię i nazwisko:" + test + " " + test));
             Assert.IsTrue(ie.Url.Contains("https://pay.ecard.pl/"));
-            ie.ForceClose();
-            ie.Close();
-            ie.Dispose();
+            _uiHelper.CloseWebBrowser(ie);
 
             //usuniecie rekordu z tabel: FAKTURY, FAKTURA_DETAILS
-            _uidata.DeleteTestRecordsFromRepository(uiData);
+            _uiHelper.DeleteTestRecordsFromRepository(uiData);
 
             //usuniecie rekordu z tabeli PatnosciEcard
-            _uidata.DeleteTestPaymentFromRepository(uiData);
+            _uiHelper.DeleteTestPaymentFromRepository(uiData);
         }
 
@@ -47,5 +46,5 @@
             // wartosc testowej faktury 1/SLJ/1 jest 0 (zero)
             // wowczas eCard powinien zwrocic zlyHash - stala informujaca, ze cos jest nie tak...
-            var uiData = _uidata.CreateAndAddTestRecordToRepository(0);
+            var uiData = _uiHelper.CreateAndAddTestRecordToRepository(0);
 
             const string test = "test";
@@ -53,5 +52,5 @@
             uiData.Test_firstname = test;
 
-            var ie = new IE("http://localhost:3646/pl/Account/LogOn");
+            var ie = new IE(adres);
             ie.TextField(Find.ByName("numerFaktury")).TypeText(uiData.Test_numer_faktury);
             ie.TextField(Find.ByName("nip")).TypeText(uiData.Test_nip);
@@ -62,10 +61,8 @@
             ie.Button(Find.ById("place")).Click();
             Assert.IsTrue(ie.ContainsText("Wystąpił nieoczekiwany błąd"));
-            ie.ForceClose();
-            ie.Close();
-            ie.Dispose();
+            _uiHelper.CloseWebBrowser(ie);
 
             //usuniecie rekordu z tabel: FAKTURY, FAKTURA_DETAILS
-            _uidata.DeleteTestRecordsFromRepository(uiData);            
+            _uiHelper.DeleteTestRecordsFromRepository(uiData);            
         }
     }
Index: /trunk/eCard/eCardMVC/adMoto.Payments.Core/Data/PotwierdzeniaEcard.cs
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Core/Data/PotwierdzeniaEcard.cs (revision 982)
+++ /trunk/eCard/eCardMVC/adMoto.Payments.Core/Data/PotwierdzeniaEcard.cs (revision 985)
@@ -17,6 +17,55 @@
             if (string.IsNullOrEmpty(value)) return;
 
-            if (value.Length > 3) throw new ArgumentException("VALIDATIONCODE must be max 3 characters long");
+            if (value.Length > 3) throw new ArgumentException("VALIDATIONCODE must be max 3 characters long.");
         }
+        partial void OnBINChanging(string value)
+        {
+            if (string.IsNullOrEmpty(value)) return;
+
+            if (value.Length > 6) throw new ArgumentException("BIN must be max 6 characters long.");
+        }
+        partial void OnMERCHANTNUMBERChanging(string value)
+        {
+            if (string.IsNullOrEmpty(value)) return;
+
+            if (value.Length > 50) throw new ArgumentException("MERCHANTNUMBER must be 50 characters long.");
+        }
+        partial void OnCOMMTYPEChanging(string value)
+        {
+            if (string.IsNullOrEmpty(value)) return;
+
+            if (value.Length > 50) throw new ArgumentException("COMMTYPE must be 50 characters long.");
+        }
+        partial void OnCURRENTSTATEChanging(string value)
+        {
+            if (string.IsNullOrEmpty(value)) return;
+
+            if (value.Length > 50) throw new ArgumentException("CURRENTSTATE must be 50 characters long.");
+        }
+        partial void OnPREVIOUSSTATEChanging(string value)
+        {
+            if (string.IsNullOrEmpty(value)) return;
+
+            if (value.Length > 50) throw new ArgumentException("PREVIOUSSTATE must be 50 characters long.");
+        }
+        partial void OnAPPROVALCODEChanging(string value)
+        {
+            if (string.IsNullOrEmpty(value)) return;
+
+            if (value.Length > 50) throw new ArgumentException("APPROVALCODE must be 50 characters long.");
+        }
+        partial void OnTYPEChanging(string value)
+        {
+            if (string.IsNullOrEmpty(value)) return;
+
+            if (value.Length > 2) throw new ArgumentException("TYPE must be 2 characters long.");
+        }
+        partial void OnWITHCVCChanging(string value)
+        {
+            if (string.IsNullOrEmpty(value)) return;
+
+            if (value.Length > 3) throw new ArgumentException("WITHCVC must be 4 characters long.");
+        }
+       
     }
 }
Index: /trunk/eCard/eCardMVC/adMoto.Payments.Web/Views/Platnosc/Form.aspx
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Web/Views/Platnosc/Form.aspx (revision 977)
+++ /trunk/eCard/eCardMVC/adMoto.Payments.Web/Views/Platnosc/Form.aspx (revision 985)
@@ -7,22 +7,67 @@
 <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
  <form method="post" action="http://localhost:3646/ecard/Status.aspx">
-     
-     <br/> 1. Merchantnumber: <%=Html.TextBox("MERCHANTNUMBER","111")%>
-     <br/> 2. Ordernumber: <%=Html.TextBox("ORDERNUMBER","1234")%>
-     <br/> 3. Currentstate: <%=Html.TextBox("CURRENTSTATE","payment_deposited")%>
-     <br/> 4. ValidationCode: <%=Html.TextBox("VALIDATIONCODE","000")%>      
-     <br/> 5. APPROVALCODE: <%=Html.TextBox("APPROVALCODE","123")%>
-     <br/> 6. AUTHTIME: <%=Html.TextBox("AUTHTIME", DateTime.Now)%>
-     <br/> 7. BIN: <%=Html.TextBox("BIN","1234")%>
-     <br/> 8. COMMTYPE: <%=Html.TextBox("COMMTYPE","anbjbj")%>
-     <br/> 9. PAYMENTTYPE: <%=Html.TextBox("PAYMENTTYPE","1")%>
-     <br/>10. DATATRANSMISJI: <%=Html.TextBox("DATATRANSMISJI", DateTime.Now)%>
-     <br/>11. EVENTTYPE: <%=Html.TextBox("EVENTTYPE","1")%>
-     <br/>12. PAYMENTNUMBER: <%=Html.TextBox("PAYMENTNUMBER","1")%>
-     <br/>13. PREVIOUSSTATE: <%=Html.TextBox("PREVIOUSSTATE","shshshhs")%>
-     <br/>14. TYPE: <%=Html.TextBox("TYPE","20") %>
-     <br/>15. WITHCVC: <%=Html.TextBox("WITHCVC","YES")%>
-        
-     <p><input type="submit" value="Dalej" /></p>
+     <table>
+         <tr>
+            <td>1. MERCHANTNUMBER: </td>
+            <td><%=Html.TextBox("MERCHANTNUMBER","111")%></td>
+         </tr>
+         <tr>
+            <td>2. ORDERNUMBER: </td>
+            <td><%=Html.TextBox("ORDERNUMBER", Convert.ToInt32(1234))%></td>
+         </tr>
+         <tr>
+            <td>3. CURRENTSTATE: </td>
+            <td> <%=Html.TextBox("CURRENTSTATE","payment_deposited")%></td>
+         </tr>
+         <tr>
+            <td>4. VALIDATIONCODE: </td>
+            <td><%=Html.TextBox("VALIDATIONCODE","000")%></td>
+         </tr>
+         <tr>
+            <td>5. APPROVALCODE: </td>
+            <td><%=Html.TextBox("APPROVALCODE","123")%></td>
+         </tr>
+         <tr>
+            <td>6. AUTHTIME: </td>
+            <td><%=Html.TextBox("AUTHTIME", DateTime.Now)%></td>
+         </tr>
+         <tr>
+            <td>7. BIN: </td>
+            <td><%=Html.TextBox("BIN","1234")%></td>
+         </tr>
+         <tr>
+            <td>8. COMMTYPE: </td>
+            <td><%=Html.TextBox("COMMTYPE","anbjbj")%></td>
+         </tr> 
+         <tr>
+            <td>9. PAYMENTTYPE:  </td>
+            <td><%=Html.TextBox("PAYMENTTYPE", Convert.ToBoolean(1))%></td>
+         </tr>
+         <tr>
+            <td>10. DATATRANSMISJI:</td>
+            <td><%=Html.TextBox("DATATRANSMISJI", DateTime.Now)%></td>
+         </tr>
+         <tr>
+            <td>11. EVENTTYPE: </td>
+            <td><%=Html.TextBox("EVENTTYPE", Convert.ToBoolean(1))%></td>
+         </tr> 
+         <tr>
+            <td>12. PAYMENTNUMBER: </td>
+            <td><%=Html.TextBox("PAYMENTNUMBER", Convert.ToBoolean(1))%></td>
+         </tr> 
+         <tr>
+            <td>13. PREVIOUSSTATE:  </td>
+            <td><%=Html.TextBox("PREVIOUSSTATE","shshshhs")%></td>
+         </tr>
+         <tr>
+            <td>14. TYPE:</td>
+            <td><%=Html.TextBox("TYPE","20") %></td>
+         </tr>
+         <tr>
+            <td>15. WITHCVC: </td>
+            <td><%=Html.TextBox("WITHCVC","YES")%></td>
+         </tr> 
+     </table>  
+     <p><input id="dalej" type="submit" value="Dalej" /></p>
 </form>
 </asp:Content>
Index: /trunk/eCard/eCardMVC/adMoto.Payments.Web/Controllers/eCardController.cs
===================================================================
--- /trunk/eCard/eCardMVC/adMoto.Payments.Web/Controllers/eCardController.cs (revision 982)
+++ /trunk/eCard/eCardMVC/adMoto.Payments.Web/Controllers/eCardController.cs (revision 985)
@@ -6,4 +6,8 @@
 using adMoto.Payments.Web.Exceptions;
 using Elmah;
+using System.Collections.Generic;
+
+using System.Configuration;
+using System.Linq;
 
 namespace adMoto.Payments.Web.Controllers
@@ -33,21 +37,75 @@
                 if (System.Web.HttpContext.Current != null)
                     ErrorSignal.FromCurrentContext().Raise(new ConfirmationLogger(), System.Web.HttpContext.Current);
+                
+                var potwierdzenie = new PotwierdzeniaEcard();
+                
+                potwierdzenie.MERCHANTNUMBER = Request["MERCHANTNUMBER"] ?? Request.Form["MERCHANTNUMBER"];
+                if (String.IsNullOrEmpty(potwierdzenie.MERCHANTNUMBER))
+                    throw new ArgumentNullException("MERCHANTNUMBER");
 
-                var potwierdzenie = new PotwierdzeniaEcard();
-                potwierdzenie.MERCHANTNUMBER = Request["MERCHANTNUMBER"] ?? Request.Form["MERCHANTNUMBER"];
-                potwierdzenie.ORDERNUMBER = Request["ORDERNUMBER"] != null ? Convert.ToInt32(Request["ORDERNUMBER"]) : Convert.ToInt32(Request.Form["ORDERNUMBER"]);
+                string ordernumber = Request["ORDERNUMBER"] ?? Request.Form["ORDERNUMBER"];
+                if (!String.IsNullOrEmpty(ordernumber))
+                    potwierdzenie.ORDERNUMBER = Convert.ToInt32(ordernumber);
+                else
+                    throw new ArgumentNullException("ORDERNUMBER");
+
                 potwierdzenie.COMMTYPE = Request["COMMTYPE"] ?? Request.Form["COMMTYPE"];
+                if (String.IsNullOrEmpty(potwierdzenie.COMMTYPE))
+                    throw new ArgumentNullException("COMMTYPE");
+
                 potwierdzenie.CURRENTSTATE = Request["CURRENTSTATE"] ?? Request.Form["CURRENTSTATE"];
+                if (String.IsNullOrEmpty(potwierdzenie.CURRENTSTATE))
+                    throw new ArgumentNullException("CURRENTSTATE");
+
                 potwierdzenie.PREVIOUSSTATE = Request["PREVIOUSSTATE"] ?? Request.Form["PREVIOUSSTATE"];
-                potwierdzenie.PAYMENTTYPE = Request["PAYMENTTYPE"] != null ? Convert.ToBoolean(Convert.ToInt32(Request["PAYMENTTYPE"])) : Convert.ToBoolean(Convert.ToInt32(Request.Form["PAYMENTTYPE"]));
-                potwierdzenie.EVENTTYPE = Request["EVENTTYPE"] != null ? Convert.ToBoolean(Convert.ToInt32(Request["EVENTTYPE"])) : Convert.ToBoolean(Convert.ToInt32(Request.Form["EVENTTYPE"]));
-                potwierdzenie.PAYMENTNUMBER = Request["PAYMENTNUMBER"] != null ? Convert.ToBoolean(Convert.ToInt32(Request["PAYMENTNUMBER"])) : Convert.ToBoolean(Convert.ToInt32(Request.Form["PAYMENTNUMBER"]));
+                if (String.IsNullOrEmpty(potwierdzenie.PREVIOUSSTATE))
+                    throw new ArgumentNullException("PREVIOUSSTATE");
+
+                string paymenttype = Request["PAYMENTTYPE"] ?? Request.Form["PAYMENTTYPE"];
+                if (!String.IsNullOrEmpty(paymenttype))
+                    potwierdzenie.PAYMENTTYPE = Convert.ToBoolean(paymenttype);
+                else
+                    throw new ArgumentNullException("PAYMENTTYPE");
+
+                string eventtype = Request["EVENTTYPE"] ?? Request.Form["EVENTTYPE"];
+                if (!String.IsNullOrEmpty(eventtype))
+                    potwierdzenie.EVENTTYPE = Convert.ToBoolean(eventtype);
+                else
+                    throw new ArgumentNullException("EVENTTYPE");
+
+                string paymentnumber = Request["PAYMENTNUMBER"] ?? Request.Form["PAYMENTNUMBER"];
+                if (!String.IsNullOrEmpty(paymentnumber))
+                    potwierdzenie.PAYMENTNUMBER = Convert.ToBoolean(paymentnumber);
+                else
+                    throw new ArgumentNullException("PAYMENTNUMBER");
+               
+                potwierdzenie.VALIDATIONCODE = Request["VALIDATIONCODE"] ?? Request.Form["VALIDATIONCODE"];
+                if (String.IsNullOrEmpty(potwierdzenie.VALIDATIONCODE))
+                    throw new ArgumentNullException("VALIDATIONCODE");
+
+                //zapisywany do bazy tylko wtedy, gdy validationcode = 000
                 potwierdzenie.APPROVALCODE = Request["APPROVALCODE"] ?? Request.Form["APPROVALCODE"];
-                potwierdzenie.VALIDATIONCODE = Request["VALIDATIONCODE"] ?? Request.Form["VALIDATIONCODE"];
+                if (String.IsNullOrEmpty(potwierdzenie.APPROVALCODE) && potwierdzenie.VALIDATIONCODE == "000")
+                    throw new ArgumentNullException("APPROVALCODE");
+
                 potwierdzenie.BIN = Request["BIN"] ?? Request.Form["BIN"];
-                potwierdzenie.AUTHTIME = Request["AUTHTIME"] != null ? Convert.ToDateTime(Request["AUTHTIME"]) : Convert.ToDateTime(Request.Form["AUTHTIME"]);
+                if (String.IsNullOrEmpty(potwierdzenie.BIN))
+                    throw new ArgumentNullException("BIN");
+                    
+                string authtime = Request["AUTHTIME"] ?? Request.Form["AUTHTIME"];
+                if (!String.IsNullOrEmpty(authtime))
+                    potwierdzenie.AUTHTIME = Convert.ToDateTime(authtime);
+                else
+                    throw new ArgumentNullException("AUTHTIME");
+               
                 potwierdzenie.TYPE = Request["TYPE"] ?? Request.Form["TYPE"];
+                if (String.IsNullOrEmpty(potwierdzenie.TYPE))
+                    throw new ArgumentNullException("TYPE");
+
                 potwierdzenie.WITHCVC = Request["WITHCVC"] ?? Request.Form["WITHCVC"];
-                potwierdzenie.DATATRANSMISJI = DateTime.Now;
+                if (String.IsNullOrEmpty(potwierdzenie.WITHCVC))
+                    throw new ArgumentNullException("WITHCVC");      
+               
+                potwierdzenie.DATATRANSMISJI = DateTime.Now; 
 
                 _eCardRepository.Insert(potwierdzenie);
@@ -63,5 +121,5 @@
 
             return content;
-        }
+        }       
     }
 }
