示例#1
0
        public long CreateEmployee(string userName, string displayName, bool isAdmin, bool isEligible, int balance, long cycleId, DateTime balanceEffectiveDate)
        {
            try
            {
                using (var context = new GritCoinEntities())
                {
                    var EMPLOYEE = new EMPLOYEE
                    {
                        EMPLOYEE_ID   = GetSequenceNextValue(context, "GRITCOIN.EMPLOYEE_SEQ"),
                        USERNAME      = userName.ToLower(),
                        DISPLAY_NAME  = displayName,
                        ADMIN_FLAG    = isAdmin ? "Y" : "N",
                        ELIGIBLE_FLAG = isEligible ? "Y" : "N"
                    };
                    context.AddToEMPLOYEE(EMPLOYEE);
                    context.SaveChanges();

                    var BALANCE_TO_AWARD = new BALANCE_TO_AWARD
                    {
                        BALANCE_TO_AWARD_ID = GetSequenceNextValue(context, "GRITCOIN.BALANCE_TO_AWARD_SEQ"),
                        CYCLES         = context.CYCLES.FirstOrDefault(cyc => cyc.CYCLE_ID == cycleId),
                        COUNT          = balance,
                        EFFECTIVE_DATE = balanceEffectiveDate,
                        EMPLOYEE       = EMPLOYEE
                    };
                    context.AddToBALANCE_TO_AWARD(BALANCE_TO_AWARD);
                    context.SaveChanges();

                    return(EMPLOYEE.EMPLOYEE_ID);
                }
            }
            catch { throw; }
        }
示例#2
0
 public long CreateTransaction(long senderId, long recipientId, bool isAnonymous, TransactionState state, string comment, bool?fromPool = null)
 {
     if (senderId == recipientId)
     {
         throw new Exception("Sender and receiver can't be the same");
     }
     try
     {
         using (var context = new GritCoinEntities())
         {
             var SENDER = context.EMPLOYEE.FirstOrDefault(EMP => EMP.EMPLOYEE_ID == senderId);
             if (!fromPool.HasValue || fromPool.Value == false)
             {
                 fromPool = SENDER != null && SENDER.ELIGIBLE_FLAG == "N" ? true : false;
             }
             var TRANSACTION = new TRANSACTIONS
             {
                 TRANSACTION_ID     = GetSequenceNextValue(context, "GRITCOIN.TRANSACTIONS_SEQ"),
                 ANONYMOUS_FLAG     = isAnonymous ? "Y" : "N",
                 EFFECTIVE_DATE     = DateTime.Now,
                 CYCLE_ID           = CurrentCycle.CycleId,
                 RECIPIENT          = recipientId,
                 SENDER             = senderId,
                 SYSTEM_CHANGE_DATE = DateTime.Now,
                 TRANSACTION_STATE  = state.ToString(),
                 NOTE           = comment,
                 FROM_POOL_FLAG = fromPool.HasValue && fromPool.Value ? "Y" : "N"
             };
             context.AddToTRANSACTIONS(TRANSACTION);
             context.SaveChanges();
             return(TRANSACTION.TRANSACTION_ID);
         }
     }
     catch { throw; }
 }
        public void CreateBalanceToAwardToAllEligibleUsers(long balance, DateTime effectiveDate, long cycleId)
        {
            try
            {
                using (var context = new GritCoinEntities())
                {
                    List <EmployeeModel> users = new EmployeeService().RetrieveEmployeeList().Where(Emp => Emp.IsEligible).ToList();
                    foreach (EmployeeModel user in users)
                    {
                        var BALANCE_TO_AWARD = new BALANCE_TO_AWARD
                        {
                            BALANCE_TO_AWARD_ID = GetSequenceNextValue(context, "GRITCOIN.BALANCE_TO_AWARD_SEQ"),
                            COUNT          = balance,
                            EFFECTIVE_DATE = effectiveDate,
                            CYCLE_ID       = cycleId,
                            EMPLOYEE_ID    = user.EmployeeId
                        };

                        context.AddToBALANCE_TO_AWARD(BALANCE_TO_AWARD);
                    }
                    context.SaveChanges();
                }
            }
            catch { throw; }
        }
示例#4
0
 public void DeleteCycle(long cycleId)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var cycle = context.CYCLES.FirstOrDefault(cyc => cyc.CYCLE_ID == cycleId);
             if (cycle != null)
             {
                 context.DeleteObject(cycle);
                 context.SaveChanges();
             }
         }
     }
     catch { throw; }
 }
示例#5
0
 public void DeleteEmployee(long employeeId)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var EMPLOYEE = context.EMPLOYEE.FirstOrDefault(emp => emp.EMPLOYEE_ID == employeeId);
             if (EMPLOYEE != null)
             {
                 context.DeleteObject(EMPLOYEE);
                 context.SaveChanges();
             }
         }
     }
     catch { throw; }
 }
 public void DeleteBalanceToAward(long balanceId)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var BALANCE = context.BALANCE_TO_AWARD.FirstOrDefault(BALANCE_TO_AWARD => BALANCE_TO_AWARD.BALANCE_TO_AWARD_ID == balanceId);
             if (BALANCE != null)
             {
                 context.DeleteObject(BALANCE);
                 context.SaveChanges();
             }
         }
     }
     catch { throw; }
 }
示例#7
0
 public void UpdateStatus(long transactionId, TransactionState state)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var TRANSACTION = context.TRANSACTIONS.FirstOrDefault(TRA => TRA.TRANSACTION_ID == transactionId);
             if (TRANSACTION != null)
             {
                 TRANSACTION.TRANSACTION_STATE = state.ToString();
                 context.SaveChanges();
             }
         }
     }
     catch { throw; }
 }
示例#8
0
 public void DeleteTransaction(long transactionId)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var TRANSACTION = context.TRANSACTIONS.FirstOrDefault(TRA => TRA.TRANSACTION_ID == transactionId);
             if (TRANSACTION != null)
             {
                 context.DeleteObject(TRANSACTION);
                 context.SaveChanges();
             }
         }
     }
     catch { throw; }
 }
示例#9
0
 public void UpdateCycle(long cycleId, DateTime startDate, DateTime endDate)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var cycle = context.CYCLES.FirstOrDefault(cyc => cyc.CYCLE_ID == cycleId);
             if (cycle != null)
             {
                 cycle.START_DATE = startDate;
                 cycle.END_DATE   = endDate;
                 context.SaveChanges();
             }
         }
     }
     catch { throw; }
 }
示例#10
0
 public void SpendTransaction(long transactionId, string comment)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var TRANSACTION = context.TRANSACTIONS.FirstOrDefault(TRA => TRA.TRANSACTION_ID == transactionId);
             if (TRANSACTION != null)
             {
                 TRANSACTION.SPENT_NOTE = comment;
                 TRANSACTION.SPENT_DATE = DateTime.Now;
                 context.SaveChanges();
             }
         }
     }
     catch { throw; }
 }
示例#11
0
 public void UpdateStatusDeclinedNote(long transactionId, string note)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var TRANSACTION = context.TRANSACTIONS.FirstOrDefault(TRA => TRA.TRANSACTION_ID == transactionId);
             if (TRANSACTION != null)
             {
                 TRANSACTION.DECLINED_NOTE     = note;
                 TRANSACTION.TRANSACTION_STATE = TransactionState.Declined.ToString();
                 context.SaveChanges();
             }
         }
     }
     catch { throw; }
 }
示例#12
0
 public void UpdateTransaction(long transactionId, TransactionState state, long coinSerialNumber)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var TRANSACTION = context.TRANSACTIONS.FirstOrDefault(TRA => TRA.TRANSACTION_ID == transactionId);
             if (TRANSACTION != null)
             {
                 TRANSACTION.TRANSACTION_STATE = state.ToString();
                 TRANSACTION.GRITCOIN_ID       = GetOrCreateCoinId(coinSerialNumber);
                 context.SaveChanges();
             }
         }
     }
     catch { throw; }
 }
 public void UpdateBalanceToAward(long balanceId, long balance, DateTime effectiveDate, long cycleId)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var BALANCE = context.BALANCE_TO_AWARD.FirstOrDefault(BALANCE_TO_AWARD => BALANCE_TO_AWARD.BALANCE_TO_AWARD_ID == balanceId);
             if (BALANCE != null)
             {
                 BALANCE.COUNT          = balance;
                 BALANCE.CYCLE_ID       = cycleId;
                 BALANCE.EFFECTIVE_DATE = effectiveDate;
                 context.SaveChanges();
             }
         }
     }
     catch { throw; }
 }
示例#14
0
 public void UpdateEmployee(long employeeId, bool isAdmin, bool isEligible, string displayName)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var EMPLOYEE = context.EMPLOYEE.FirstOrDefault(emp => emp.EMPLOYEE_ID == employeeId);
             if (EMPLOYEE != null)
             {
                 EMPLOYEE.DISPLAY_NAME  = displayName;
                 EMPLOYEE.ADMIN_FLAG    = isAdmin ? "Y" : "N";
                 EMPLOYEE.ELIGIBLE_FLAG = isEligible ? "Y" : "N";
                 context.SaveChanges();
             }
         }
     }
     catch { throw; }
 }
示例#15
0
        public long CreateCycle(DateTime startDate, DateTime endDate)
        {
            try
            {
                using (var context = new GritCoinEntities())
                {
                    var cycle = new CYCLES
                    {
                        CYCLE_ID   = GetSequenceNextValue(context, "GRITCOIN.CYCLES_SEQ"),
                        START_DATE = startDate,
                        END_DATE   = endDate
                    };

                    context.AddToCYCLES(cycle);
                    context.SaveChanges();
                    return(cycle.CYCLE_ID);
                }
            }
            catch { throw; }
        }
        public long CreateBalanceToAward(long balance, DateTime effectiveDate, long cycleId, long userId)
        {
            try
            {
                using (var context = new GritCoinEntities())
                {
                    var BALANCE_TO_AWARD = new BALANCE_TO_AWARD
                    {
                        BALANCE_TO_AWARD_ID = GetSequenceNextValue(context, "GRITCOIN.BALANCE_TO_AWARD_SEQ"),
                        COUNT          = balance,
                        EFFECTIVE_DATE = effectiveDate,
                        CYCLE_ID       = cycleId,
                        EMPLOYEE_ID    = userId
                    };

                    context.AddToBALANCE_TO_AWARD(BALANCE_TO_AWARD);
                    context.SaveChanges();
                    return(BALANCE_TO_AWARD.BALANCE_TO_AWARD_ID);
                }
            }
            catch { throw; }
        }
示例#17
0
 public long GetOrCreateCoinId(long serialNumber)
 {
     try
     {
         using (var context = new GritCoinEntities())
         {
             var COIN = context.COINS.FirstOrDefault(CO => CO.SERIAL_NUMBER == serialNumber);
             if (COIN == null)
             {
                 COIN = new COINS
                 {
                     GRITCOIN_ID   = GetSequenceNextValue(context, "GRITCOIN.COINS_SEQ"),
                     SERIAL_NUMBER = serialNumber
                 };
                 context.AddToCOINS(COIN);
                 context.SaveChanges();
             }
             return(COIN.GRITCOIN_ID);
         }
     }
     catch { throw; }
 }