public dynamic OvdimPermitted(dynamic formData)
        {
            DanaRequestResult     rslt = new DanaRequestResult();
            List <OvdimPermitted> lstOvdimPermitted = new List <OvdimPermitted>();

            try
            {
                DBInfo _dbInfo = new DBInfo((Guid)formData.token);
                if (_dbInfo.requestResult.ResultCode != 0)
                {
                    rslt = _dbInfo.requestResult;
                }
                lstOvdimPermitted = _dbInfo.GetOvdimPermitted();
            }
            catch (Exception ex)
            {
                DBInfo.AddToLogTable(ex.StackTrace);
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.danaResult     = JObject.FromObject(rslt);
            result.ovdimPermitted = JObject.FromObject(new { lstOvdimPermitted });

            return(result);
        }
        public dynamic TimeSheetProject(dynamic formData)
        {
            DanaRequestResult       rslt = new DanaRequestResult();
            List <TimeSheetProject> lstTimeSheetProject = new List <TimeSheetProject>();

            try
            {
                DBInfo _dbInfo = new DBInfo((Guid)formData.token);
                if (_dbInfo.requestResult.ResultCode != 0)
                {
                    rslt = _dbInfo.requestResult;
                }
                if (!_dbInfo.IsOvedPermitted((int)formData.nOved))
                {
                    rslt = new DanaRequestResult(RequestResultError.NotPermittedForOved);
                }
                lstTimeSheetProject = _dbInfo.GetTimeSheetProject((int)formData.nOved, (DateTime)formData.dtFrom, (DateTime)formData.dtTo);
            }
            catch (Exception ex)
            {
                DBInfo.AddToLogTable(ex.StackTrace);
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.danaResult       = JObject.FromObject(rslt);
            result.timeSheetProject = JObject.FromObject(new { lstTimeSheetProject });

            return(result);
        }
        public dynamic AbsencesByParam(dynamic formData)
        {
            DanaRequestResult rslt       = new DanaRequestResult();
            List <Headrut>    lstHeadrut = new List <Headrut>();

            try
            {
                DBInfo _dbInfo = new DBInfo((Guid)formData.token);
                if (_dbInfo.requestResult.ResultCode != 0)
                {
                    rslt = _dbInfo.requestResult;
                }
                else
                {
                    lstHeadrut = _dbInfo.GetAbsences((int)formData.nCode);
                }
            }
            catch (Exception ex)
            {
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.danaResult = JObject.FromObject(rslt);
            result.absences   = JObject.FromObject(new { lstHeadrut });

            return(result);
        }
        public dynamic OvedTasks(dynamic formData)
        {
            DanaRequestResult rslt         = new DanaRequestResult();
            List <OvedTasks>  lstOvedTasks = new List <OvedTasks>();

            try
            {
                DBInfo _dbInfo = new DBInfo((Guid)formData.token);
                if (_dbInfo.requestResult.ResultCode != 0)
                {
                    rslt = _dbInfo.requestResult;
                }
                if (!_dbInfo.IsOvedPermitted((int)formData.nOved))
                {
                    rslt = new DanaRequestResult(RequestResultError.NotPermittedForOved);
                }
                lstOvedTasks = _dbInfo.GetOvedTasks((int)formData.nOved);
            }
            catch (Exception ex)
            {
                DBInfo.AddToLogTable(ex.StackTrace);
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.danaResult = JObject.FromObject(rslt);
            result.ovedTasks  = JObject.FromObject(new { lstOvedTasks });

            return(result);
        }
        public dynamic InsertAbsencePeriod(dynamic formData)
        {
            DanaRequestResult rslt = new DanaRequestResult();

            try
            {
                DBInfo _dbInfo = new DBInfo((Guid)formData.token);
                if (_dbInfo.requestResult.ResultCode != 0)
                {
                    rslt = _dbInfo.requestResult;
                }
                if (!_dbInfo.IsOvedPermitted((int)formData.nOved))
                {
                    rslt = new DanaRequestResult(RequestResultError.NotPermittedForOved);
                }
                if (_dbInfo.requestResult.ResultCode == 0)
                {
                    rslt = _dbInfo.InsertAbsencePeriod((int)formData.nOved, (int)formData.nKodHeadrut, (DateTime)formData.dtFrom, (DateTime)formData.dtTo);
                }
                else
                {
                    rslt = _dbInfo.requestResult;
                }
            }
            catch (Exception ex)
            {
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.danaResult = JObject.FromObject(rslt);

            return(result);
        }
        public dynamic InsertUpdateTimeSheetProject(dynamic formData)
        {
            DanaRequestResult       rslt = new DanaRequestResult();
            List <TimeSheetProject> lstTimeSheetProject = new List <TimeSheetProject>();
            List <TimeSheetMonthly> lstTimeSheetMonthly = new List <TimeSheetMonthly>();

            try
            {
                DBInfo _dbInfo = new DBInfo((Guid)formData.token);
                if (_dbInfo.requestResult.ResultCode != 0)
                {
                    rslt = _dbInfo.requestResult;
                }
                if (!_dbInfo.IsOvedPermitted((int)formData.nOved))
                {
                    rslt = new DanaRequestResult(RequestResultError.NotPermittedForOved);
                }
                if (_dbInfo.requestResult.ResultCode == 0)
                {
                    rslt = _dbInfo.InsertUpdateTimeSheetProject((int)formData.nOved,
                                                                (formData.nTimeSheetProjectID == null ? -1 : (int)formData.nTimeSheetProjectID),
                                                                (formData.dtClockDate == null ? new DateTime(1899, 1, 1) : (DateTime)formData.dtClockDate),
                                                                (formData.tFrom == null ? new DateTime(1899, 1, 1) : (DateTime)formData.tFrom),
                                                                (formData.tTo == null ? new DateTime(1899, 1, 1) : (DateTime)formData.tTo),
                                                                (formData.Shaot == null ? new DateTime(1899, 1, 1) : (DateTime)formData.Shaot),
                                                                (int)formData.nTaskID,
                                                                (formData.Hearot) == null ? String.Empty : (string)formData.Hearot,
                                                                out lstTimeSheetProject, out lstTimeSheetMonthly);
                }
                else
                {
                    rslt = _dbInfo.requestResult;
                }
            }
            catch (Exception ex)
            {
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.timeSheetProject = JObject.FromObject(new { lstTimeSheetProject });
            result.timeSheetMonthly = JObject.FromObject(new { lstTimeSheetMonthly });
            result.danaResult       = JObject.FromObject(rslt);

            return(result);
        }
        public dynamic GetMonthlyActivity(dynamic formData)
        {
            DanaRequestResult rslt = new DanaRequestResult();
            int   nWorkDays        = 0;
            float WorkTime         = 0;
            List <MonthlyAbsence> lstMonthlyAbsence = new List <MonthlyAbsence>();
            List <MonthlyTasks>   lstMonthlyTasks   = new List <MonthlyTasks>();

            try
            {
                DBInfo _dbInfo = new DBInfo((Guid)formData.token);
                if (_dbInfo.requestResult.ResultCode != 0)
                {
                    rslt = _dbInfo.requestResult;
                }
                else if (!_dbInfo.IsOvedPermitted((int)formData.nOved))
                {
                    rslt = new DanaRequestResult(RequestResultError.NotPermittedForOved);
                }
                else
                {
                    _dbInfo.GetMonthlyActivity((int)formData.nOved, (DateTime)formData.dtFrom, (DateTime)formData.dtTo,
                                               out WorkTime, out nWorkDays, out lstMonthlyAbsence, out lstMonthlyTasks);
                }
            }
            catch (Exception ex)
            {
                DBInfo.AddToLogTable(ex.StackTrace);
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.danaResult     = JObject.FromObject(rslt);
            result.workTime       = WorkTime;
            result.workDays       = nWorkDays;
            result.monthlyAbsence = JObject.FromObject(new { lstMonthlyAbsence });
            result.monthlyTasks   = JObject.FromObject(new { lstMonthlyTasks });

            return(result);
        }
        public dynamic GetDomains(dynamic formData)
        {
            DanaRequestResult rslt       = new DanaRequestResult();
            List <Domains>    lstDomains = new List <Domains>();

            try
            {
                //DBInfo _dbInfo = new DBInfo((Guid)formData.token);
                DBInfo _dbInfo = new DBInfo();
                lstDomains = _dbInfo.GetDomains();
            }
            catch (Exception ex)
            {
                DBInfo.AddToLogTable(ex.StackTrace);
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.danaResult = JObject.FromObject(rslt);
            result.domains    = JObject.FromObject(new { lstDomains });

            return(result);
        }
        public dynamic Login(dynamic formData)
        {
            DanaRequestResult rslt    = new DanaRequestResult();
            DBInfo            _dbInfo = new DBInfo();
            Guid Token   = Guid.Empty;
            int  nOvedID = -1;

            try
            {
                rslt = _dbInfo.Login(formData.sDomain.ToString(), formData.sUserName.ToString(), formData.sPassword.ToString(), out Token, out nOvedID);
            }
            catch (Exception ex)
            {
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.danaResult    = JObject.FromObject(rslt);
            result.token         = Token;
            result.currentOvedID = nOvedID;

            return(result);
        }
        public dynamic GetMonthlySummary(dynamic formData)
        {
            //Guid token, int nOved, DateTime dtFrom, DateTime dtTo, out List<TimeSheet> lstTimeSheet
            DanaRequestResult     rslt = new DanaRequestResult();
            List <MonthlySummary> lstMonthlySummary = new List <MonthlySummary>();

            try
            {
                DBInfo _dbInfo = new DBInfo((Guid)formData.token);
                if (_dbInfo.requestResult.ResultCode != 0)
                {
                    rslt = _dbInfo.requestResult;
                }
                else
                {
                    if (!_dbInfo.IsOvedPermitted((int)formData.nOved))
                    {
                        rslt = new DanaRequestResult(RequestResultError.NotPermittedForOved);
                    }
                    else
                    {
                        lstMonthlySummary = _dbInfo.GetMonthlySummary((int)formData.nOved, (DateTime)formData.Chodesh);
                    }
                }
            }
            catch (Exception ex)
            {
                DBInfo.AddToLogTable(ex.StackTrace);
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.danaResult     = JObject.FromObject(rslt);
            result.monthlySummary = JObject.FromObject(new { lstMonthlySummary });

            return(result);
        }
        public dynamic DeleteTimeSheetProject(dynamic formData)
        {
            DanaRequestResult       rslt = new DanaRequestResult();
            List <TimeSheetMonthly> lstTimeSheetMonthly = new List <TimeSheetMonthly>();

            try
            {
                DBInfo _dbInfo = new DBInfo((Guid)formData.token);
                if (_dbInfo.requestResult.ResultCode != 0)
                {
                    rslt = _dbInfo.requestResult;
                }
                //if (!_dbInfo.IsOvedPermitted((int)formData.nOved))
                //{
                //    rslt = new DanaRequestResult(RequestResultError.NotPermittedForOved);
                //}
                if (_dbInfo.requestResult.ResultCode == 0)
                {
                    //rslt = _dbInfo.DeleteTimeSheetProject((int)formData.nTimeSheetProjectID);
                    rslt = _dbInfo.DeleteTSP((int)formData.nTimeSheetProjectID, true, out lstTimeSheetMonthly);
                }
                else
                {
                    rslt = _dbInfo.requestResult;
                }
            }
            catch (Exception ex)
            {
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.danaResult       = JObject.FromObject(rslt);
            result.timeSheetMonthly = JObject.FromObject(new { lstTimeSheetMonthly });

            return(result);
        }
        public dynamic InsertMonthlyApproval(dynamic formData)
        {
            DanaRequestResult       rslt = new DanaRequestResult();
            List <TimeSheetMonthly> lstTimeSheetMonthly = new List <TimeSheetMonthly>();

            try
            {
                DBInfo _dbInfo = new DBInfo((Guid)formData.token);
                if (_dbInfo.requestResult.ResultCode != 0)
                {
                    rslt = _dbInfo.requestResult;
                }
                if (!_dbInfo.IsOvedPermitted((int)formData.nOved))
                {
                    rslt = new DanaRequestResult(RequestResultError.NotPermittedForOved);
                }
                if (_dbInfo.requestResult.ResultCode == 0)
                {
                    rslt = _dbInfo.InsertMonthApproval((int)formData.nOved, (DateTime)formData.dtClockDate, out lstTimeSheetMonthly);
                }
                else
                {
                    rslt = _dbInfo.requestResult;
                }
            }
            catch (Exception ex)
            {
                rslt = new DanaRequestResult(-1, ex.Message);
            }
            dynamic result = new JObject();

            result.danaResult       = JObject.FromObject(rslt);
            result.timeSheetMonthly = JObject.FromObject(new { lstTimeSheetMonthly });

            return(result);
        }