Ejemplo n.º 1
0
        public static void InformAboutExpiringCreditCards()
        {
            DateTime nextMonth = DateTime.Now.AddMonths(1);
            IEnumerable<CreditCardAlias> aliases2expire = null;
            string mail_template = null;
            string message = null;
            Person person = null;
            InsuranceDetails details = null;

            mail_template = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"\MailTemplate\cc_expire.html");

            using (AviertDataContext context = new AviertDataContext())
            {
                aliases2expire = context.CreditCardAlias.Where(a => a.ExpirationMonth == nextMonth.Month && a.ExpirationYear == nextMonth.Year);
            }

            foreach (CreditCardAlias alias in aliases2expire)
            {
                using (AviertDataContext context = new AviertDataContext())
                {
                    details = context.InsuranceDetails.Single(d => d.DetailsId == alias.InsuranceId);
                    person = context.Person.Single(p => p.PersonId == details.PersonId);
                }

                message = mail_template.Replace("[name]", string.Format("{0} {1}", person.GivenName, person.LastName));
                Tools.SendMail(person.EMail, "Ablauf Ihrer Kreditkarte", message, true);
            }
        }
Ejemplo n.º 2
0
        public static string GetNlsObject(string p_key, string p_language)
        {
            NlsObject nlsObj = null;
            string result = "[MISSING]";

            if (string.IsNullOrEmpty(p_key))
            {
                throw new Exception("Missing NLS key");
            }

            if (string.IsNullOrEmpty(p_language))
            {
                p_language = "de";
            }

            p_key = p_key.ToUpper();
            p_language = p_language.ToUpper();

            using (AviertDataContext context = new AviertDataContext())
            {
                nlsObj = context.NlsObject.SingleOrDefault(nls => nls.NlsKey.ToUpper().Equals(p_key) && nls.Language.ToUpper().Equals(p_language));

                if (nlsObj != null)
                {
                    result = nlsObj.Text;
                }
            }

            return (result);
        }
Ejemplo n.º 3
0
        public static void BeginInsurance(Person p_person, DateTime p_start, DateTime p_end, int p_franchise, int p_paymentMethod)
        {
            InsuranceDetails details = null;
            double erstePraemie = 0.00;

            if (p_end < p_start)
            {
                throw new Exception("Enddatum liegt vor dem Startdatum");
            }

            using (AviertDataContext context = new AviertDataContext())
            {
                // Start- und Enddatum setzen
                details = context.InsuranceDetails.Single(d => d.PersonId == p_person.PersonId);
                details.StartDate = p_start;
                details.EndDate = p_end;
                details.Franchise = p_franchise;
                details.Status = (int)InsuranceStatus.Pending;

                // Aenderungen uebernehmen
                context.SubmitChanges();
            }

            erstePraemie = PraemienHelper.GetErstePraemie((int)details.Franchise, (DateTime)details.StartDate, p_paymentMethod);

            DatatransHelper.CreateTransaction(details, erstePraemie);
        }
Ejemplo n.º 4
0
 public static void CreatePerson(ref Person p_person)
 {
     using (AviertDataContext context = new AviertDataContext())
     {
         context.Person.InsertOnSubmit(p_person);
         context.SubmitChanges();
     }
 }
Ejemplo n.º 5
0
        public static void EndInsurance(Person p_person, DateTime p_endDate)
        {
            InsuranceDetails details = null;

            using (AviertDataContext context = new AviertDataContext())
            {
                // Enddatum setzen
                details = context.InsuranceDetails.SingleOrDefault(d => d.PersonId == p_person.PersonId);
                details.EndDate = p_endDate;
                details.Status = (int)InsuranceStatus.Terminated;

                // Aenderungen uebernehmen
                context.SubmitChanges();
            }
        }
Ejemplo n.º 6
0
        public static void InactivateExpiresInsurances()
        {
            IEnumerable<InsuranceDetails> expiredInsurances = null;

            using (AviertDataContext context = new AviertDataContext())
            {
                expiredInsurances = context.InsuranceDetails.Where(d => d.Status == (int)InsuranceStatus.Active && (d.EndDate != null && d.EndDate < DateTime.Now));

                foreach (InsuranceDetails details in expiredInsurances)
                {
                    details.Status = (int)InsuranceStatus.Terminated;
                }

                context.SubmitChanges();
            }
        }
Ejemplo n.º 7
0
        public static InsuranceDetails CreateInsuranceDetails(Person p_person)
        {
            InsuranceDetails details = null;

            details = new InsuranceDetails()
            {
                PersonId = p_person.PersonId,
                InsertDate = DateTime.Now,
                Status = (int)InsuranceStatus.Created
            };

            using (AviertDataContext context = new AviertDataContext())
            {
                context.InsuranceDetails.InsertOnSubmit(details);
                context.SubmitChanges();
            }

            return (details);
        }
Ejemplo n.º 8
0
        public static bool CheckIfUserExists(string p_username)
        {
            bool exists = false;
            User user = null;

            if (string.IsNullOrEmpty(p_username)) return exists;
            p_username = p_username.Trim();

            using (AviertDataContext context = new AviertDataContext())
            {
                user = context.User.SingleOrDefault(u => u.Username.Equals(p_username));
                if (user != null)
                {
                    exists = true;
                }
            }

            return (exists);
        }
Ejemplo n.º 9
0
        public static void BatchExecuteTransactions(IEnumerable<DatatransTransaction> p_transactions)
        {
            string xml_request = null;

            foreach (DatatransTransaction transaction in p_transactions)
            {
                transaction.Status = (short)TransactionStatus.Pending;
            }

            using (AviertDataContext context = new AviertDataContext())
            {
                context.DatatransTransaction.InsertAllOnSubmit(p_transactions);
                context.SubmitChanges();
            }

            foreach (DatatransTransaction transaction in p_transactions)
            {
                xml_request = GetXmlTransaction(transaction);
                DoWebRequest(xml_request);
            }
        }
Ejemplo n.º 10
0
        public static bool CheckPassword(string p_username, string p_password)
        {
            bool passwordCorrect = false;
            User user = null;
            string encryptedPassword = null;

            using (AviertDataContext context = new AviertDataContext())
            {
                user = context.User.SingleOrDefault(u => u.Username.Equals(p_username));

                if (user != null)
                {
                    encryptedPassword = EncryptPassword(p_password);
                    if (user.Password.Equals(encryptedPassword))
                    {
                        passwordCorrect = true;
                    }
                }
            }

            return (passwordCorrect);
        }
Ejemplo n.º 11
0
        public static void ConfirmTransaction(string p_transaction,
                                              string p_uppTransactionId,
                                              string p_pmethod,
                                              string p_authorizationCode,
                                              string p_responseMessage,
                                              string p_status)
        {
            DatatransTransaction transaction = null;
            long id = 0;
            TransactionStatus status = TransactionStatus.Unknown;

            if ("success".Equals(p_status))
            {
                status = TransactionStatus.Authorized;
            }
            else if ("error".Equals(p_status))
            {
                status = TransactionStatus.Rejected;
            }
            else if ("cancel".Equals(p_status))
            {
                status = TransactionStatus.Cancelled;
            }

            p_transaction = p_transaction.TrimStart('0');
            id = long.Parse(p_transaction);

            using (AviertDataContext context = new AviertDataContext())
            {
                transaction = context.DatatransTransaction.Single(t => t.TransactionId == id);
                transaction.DT_uppTransactionId = p_uppTransactionId;
                transaction.DT_pmethod = p_pmethod;
                transaction.DT_authorizationCode = p_authorizationCode;
                transaction.DT_responseMessage = p_responseMessage;
                transaction.Status = (short)status;
                context.SubmitChanges();
            }
        }
Ejemplo n.º 12
0
        public static void CreateUser(ref User p_user)
        {
            if (string.IsNullOrEmpty(p_user.Username) || string.IsNullOrEmpty(p_user.Password))
            {
                throw new Exception("Fehler beim Erstellen des Benutzers.");
            }

            if (CheckIfUserExists(p_user.Username))
            {
                throw new Exception("Der Benutzer existiert bereits.");
            }

            p_user.Password = EncryptPassword(p_user.Password);
            p_user.Status = (int)UserStatus.Created;
            p_user.CreationDate = DateTime.Now;
            p_user.PasswordDate = DateTime.Now;

            using (AviertDataContext context = new AviertDataContext())
            {
                context.User.InsertOnSubmit(p_user);
                context.SubmitChanges();
            }
        }
Ejemplo n.º 13
0
 public static void UpdateLastLogin(User p_user)
 {
     User user = null;
     using (AviertDataContext context = new AviertDataContext())
     {
         user = context.User.SingleOrDefault(u => u.UserId == p_user.UserId);
         user.LastLogin = DateTime.Now;
         context.SubmitChanges();
     }
 }
Ejemplo n.º 14
0
        public static void SetPassword(User p_user, string p_password)
        {
            User user = null;

            using (AviertDataContext context = new AviertDataContext())
            {
                user = context.User.SingleOrDefault(u => u.UserId == p_user.UserId);
                user.Password = EncryptPassword(p_password);
                user.PasswordDate = DateTime.Now;
                context.SubmitChanges();
            }
        }
Ejemplo n.º 15
0
        public static DatatransTransaction GetFirstTransaction(Person p_person)
        {
            DatatransTransaction result = null;
            InsuranceDetails details = null;

            details = UserHelper.GetInsuranceDetails(p_person);

            using (AviertDataContext context = new AviertDataContext())
            {
                result = context.DatatransTransaction.First(t => t.DetailsId == details.DetailsId);
            }

            return (result);
        }
Ejemplo n.º 16
0
        public static User GetUser(string p_username)
        {
            User user = null;

            using (AviertDataContext context = new AviertDataContext())
            {
                user = context.User.SingleOrDefault(u => u.Username.Equals(p_username));
            }

            return (user);
        }
Ejemplo n.º 17
0
        public static Person GetPerson(User p_user)
        {
            Person person = null;

            using (AviertDataContext context = new AviertDataContext())
            {
                person = context.Person.SingleOrDefault(p => p.UserId == p_user.UserId);
            }

            return (person);
        }
Ejemplo n.º 18
0
        public static InsuranceDetails GetInsuranceDetails(Person p_person)
        {
            InsuranceDetails details = null;

            using (AviertDataContext context = new AviertDataContext())
            {
                details = context.InsuranceDetails.SingleOrDefault(d => d.PersonId == p_person.PersonId);
            }

            return (details);
        }
Ejemplo n.º 19
0
        public static DatatransTransaction CreateTransaction(InsuranceDetails p_details, double p_amount)
        {
            DatatransTransaction transaction = null;

            transaction = new DatatransTransaction()
            {
                DetailsId = p_details.DetailsId,
                Amount = (decimal)p_amount,
                Status = (int)TransactionStatus.Pending,
                InsDate = DateTime.Now
            };

            using (AviertDataContext context = new AviertDataContext())
            {
                context.DatatransTransaction.InsertOnSubmit(transaction);
                context.SubmitChanges();
            }

            return (transaction);
        }
Ejemplo n.º 20
0
        public static DatatransTransaction GetLastTransaction(Person p_person)
        {
            DatatransTransaction result = null;
            InsuranceDetails details = null;
            IEnumerable<DatatransTransaction> transactions = null;

            details = UserHelper.GetInsuranceDetails(p_person);

            using (AviertDataContext context = new AviertDataContext())
            {
                transactions = context.DatatransTransaction.Where(t => t.DetailsId == details.DetailsId);
                result = transactions.Last();
            }

            return (result);
        }
Ejemplo n.º 21
0
        public static string GetXmlTransaction(DatatransTransaction p_transaction)
        {
            CreditCardAlias alias = null;
            string transaction_id = null;
            double amount = 0.00;

            transaction_id = p_transaction.TransactionId.ToString();
            transaction_id = transaction_id.PadLeft(8, '0');

            amount = (double)p_transaction.Amount;

            if (TestMode)
            {
                amount = 1.00;
            }

            using (AviertDataContext context = new AviertDataContext())
            {
                alias = context.CreditCardAlias.Single(a => a.InsuranceId == p_transaction.DetailsId);
            }

            string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +
                         "<authorizationService version=\"1\">" +
                         "<body merchantId=\"3000005923\">" +
                         "<transaction refno=\"" + transaction_id + "\">" +
                         "<request>" +
                         "<amount>" + (int)(amount / 100) + "</amount>" +
                         "<currency>CHF</currency>" +
                         "<aliasCC>" + alias.Alias + "</aliasCC>" +
                         "<expm>" + alias.ExpirationMonth + "</expm>" +
                         "<expy>" + alias.ExpirationYear + "</expy>" +
                         "</request>" +
                         "</transaction>" +
                         "</body>" +
                         "</authorizationService>";

            return (xml);
        }
Ejemplo n.º 22
0
        public static void CreateAlias(string p_transactionRef, string p_masked, string p_alias, string p_expMonth, string p_expYear)
        {
            DatatransTransaction transaction = null;
            long id = -1;

            p_transactionRef = p_transactionRef.TrimStart('0');
            id = long.Parse(p_transactionRef);

            using (AviertDataContext context = new AviertDataContext())
            {
                transaction = context.DatatransTransaction.Single(t => t.TransactionId == id);

                CreditCardAlias alias = new CreditCardAlias()
                {
                    Alias = p_alias,
                    MaskedCcNumber = p_masked,
                    ExpirationMonth = int.Parse(p_expMonth),
                    ExpirationYear = int.Parse(p_expYear),
                    InsuranceId = (int)transaction.DetailsId
                };

                context.CreditCardAlias.InsertOnSubmit(alias);
                context.SubmitChanges();
            }
        }
Ejemplo n.º 23
0
        protected static IEnumerable<InsuranceDetails> GetInsurancesToBillPartially()
        {
            IEnumerable<InsuranceDetails> details_list = null;

            using (AviertDataContext context = new AviertDataContext())
            {
                details_list = context.InsuranceDetails.Where(id => id.Status == (int)InsuranceStatus.Active &&
                                                                    id.EndDate != null &&
                                                                    id.EndDate.Value.Month == DateTime.Now.Month &&
                                                                    id.EndDate.Value.Year == DateTime.Now.Year);

            }

            return (details_list);
        }