public void CallServiceBaseMethod(RequestItem Item)
        {
            ResponseItem re = new ResponseItem(Item);

            re.RequestItem.RequestLog = re.RequestItem.RequestLog + "srv_start: " + DateTime.Now.ToString() + ",";
            ServiceConfig srvcont = new ServiceConfig(_serviceconfigparameters);
            HelperClasses.Serializer srl = new HelperClasses.Serializer();

            try
            {
                DateTime dFrom = DateTime.Now.AddMonths(-10).Date;
                DateTime dTo = DateTime.Now.AddMonths(2).Date;
                var periodsFrom = (from row in srvcont.DataContext.tbl_trDate.Where(w => w.Date >= dFrom && w.Date <= dTo)
                                   select row.PeriodStarting).Distinct().ToList();

                var periodsFromTo = from period in periodsFrom
                                    select new
                                    {
                                        PeriodFromTo = period.Value.ToString("yyyy-MM-dd") + " - " + (period.Value.Day == 1 ? period.Value.AddDays(14).ToString("yyyy-MM-dd") :
                                                        (new DateTime(period.Value.AddMonths(1).Year, period.Value.AddMonths(1).Month, 1)).AddDays(-1).ToString("yyyy-MM-dd"))
                                    };
                re.ResponseBody = srl.NTSoftJsonSerialize(periodsFromTo.ToArray());
                re.RequestCompleted = true;

            }

            catch (Exception ex)
            {

                //re.ResponseBody = ex.ToString();
                re.RequestCompleted = false;
            }

            re.RequestItem.RequestLog = re.RequestItem.RequestLog + "srv_finish: " + DateTime.Now.ToString() + ",";
        }
        public bool Authenticate(string user, string pass)
        {
            HelperClasses.Serializer srl = new HelperClasses.Serializer();
            myService.ResponseItem ex_resp = new myService.ResponseItem();

            //string fileExtension =  VirtualPathUtility.GetFileName(filePath);

            AuthenticatedUser auth_user = new AuthenticatedUser();

            try
            {
                auth_user = TRUserAuthentication(user, pass);

            }
            catch (HttpRequestValidationException ex_http)
            {
                string ex_res = ex_http.ToString();
            }

            return auth_user.IsAuthenticated;
        }
        public ResponseItem VoidTest(RequestItem Item)
        {
            ResponseItem re = new ResponseItem(Item);

            re.RequestItem.RequestLog = re.RequestItem.RequestLog + "srv_start: " + DateTime.Now.ToString() + ",";
            ServiceConfig srvcont = new ServiceConfig(_serviceconfigparameters);
            decimal? TR_SubmitMinHours = null;
            Queries.GetQueries getQ = new Queries.GetQueries(_serviceconfigparameters);

            RuntimeProperties _RuntimeProperties = new RuntimeProperties(_serviceconfigparameters);
            _RuntimeProperties.GetPersonalProperties(Item.reqp_userid);

            try
            {

                TR_SubmitMinHours = getQ.tbl_hrWorkingHourTemplate_MinHoursDaily(Item.reqp_userid, Item.reqp_date, _RuntimeProperties.CalendarName.GetValue());
                // TRS_PrivateGetDailyHourLimitByUser(Item.reqp_date, Item.reqp_userid);

                TR_SubmitMinHours = TR_SubmitMinHours == null ? Convert.ToDecimal(8.25) : TR_SubmitMinHours;

                HelperClasses.Serializer srl = new HelperClasses.Serializer();

                string hour = srl.NTSoftJsonSerialize(TR_SubmitMinHours.ToString());
                re.ResponseBody = hour.Replace(",", ".");
                re.RequestCompleted = true;

            }

            catch (Exception ex)
            {
                HelperClasses.ExceptionHandler.LogException(ex, srvcont, Item);
                //re.ResponseBody = ex.ToString();
                re.RequestCompleted = false;
            }

            re.RequestItem.RequestLog = re.RequestItem.RequestLog + "srv_finish: " + DateTime.Now.ToString() + ",";
            return re;
        }
        /// <summary>
        /// form mentése
        /// 0) ID_TrHeader, ID_Tablefield alapján annak ellenőrzése, hogy az adott editguid létezik-e
        /// 1) ID_TrHeader, ID_FormField alapján tbl_frmFormTransaction tábla sorainak érvénytelenítése
        /// 2) ID_TrHeader guid, ID_FormField, frm_keyValue alapján új sorok felvétele tbl_frmFormTransaction táblába
        /// 3) értékekek validálása
        /// 4) update sp futtatása
        /// 5) mentés ellenőrzése
        /// </summary>
        /// <param name="ID_Created_By">user id</param>
        /// <param name="json_arr">formheader</param>
        /// <returns>CustomForm</returns>
        public CustomForm SetFormData_Save(int ID_Created_By, string json_arr_header, string json_arr_data)
        {
            ServiceConfig srvcont = new ServiceConfig(_serviceconfigparameters);
                HelperClasses.Serializer srl = new HelperClasses.Serializer();

                CustomForm myForm = new CustomForm();
                myForm.FormHeader = srl.NTSoftJsonDeserialize<CustomFormHeader>(json_arr_header);
                myForm.Data = srl.NTSoftJsonDeserialize<List<FormData>>(json_arr_data);

                if (string.IsNullOrEmpty(myForm.FormHeader.EditGuid) || myForm.FormHeader.ID_TableField == 0 || ID_Created_By == 0)
                {
                    myForm.Status = FormStatus.InvalidParameters;
                    myForm.StatusMessage = "Error in Formheader!";
                    myForm.FormHeader.IsReadOnly = true;
                    return myForm;
                }

                //0)
                if (!EditGuidExist(myForm.FormHeader.EditGuid, myForm.FormHeader.ID_TableField, ID_Created_By))
                {
                    myForm.Status = FormStatus.AccesDenied;
                    myForm.StatusMessage = "Your edit session is expired or does not exist!";
                    myForm.FormHeader.IsReadOnly = true;
                    return myForm;
                }

                //1)
                InvalidateFormTransactionRows(ID_Created_By, ref myForm);

                if (myForm.Status == FormStatus.ProcedureReady)
                {
                    //2)
                    InsertFormTransactionRows(ID_Created_By, ref myForm);
                }

                //3 validálás

                foreach (var item in myForm.Data)
                {
                    if (!ValueIsValid((int)item.fieldid, item.id))
                    {
                        myForm.Status = FormStatus.InvalidParameters;
                        myForm.StatusMessage = "Form validation failed!";
                        return myForm;
                    }
                }

                if (myForm.Status == FormStatus.ProcedureReady)
                {
                    var stat_save_id = srvcont.DataContext.tbl_frmTransactionStatus.FirstOrDefault(f => f.TransactionStatus == Constants.TRANSACTION_STATUS.SAVED).ID;
                    //4)
                    srvcont.DataContext.sp_frmSetData(myForm.FormHeader.EditGuid, stat_save_id);
                    //5)
                    if (IsDataSaved(myForm.FormHeader.EditGuid, myForm.FormHeader.ID_TableField, ID_Created_By))
                    {
                        myForm.Status = FormStatus.ProcedureReady;
                    }
                    else
                    {
                        myForm.Status = FormStatus.ProcedureFailed;
                        myForm.StatusMessage = "Error in form save routine!";
                        myForm.FormHeader.IsReadOnly = true;
                        return myForm;
                    }
                }
                //save sp meghívása
                return myForm;
        }
        /// <summary>
        /// rekord Cancel státusz állítása tbl_frmFormTransactionHeader, tbl_frmFormTransaction táblákban
        /// </summary>
        /// <param name="ID_Created_By"></param>
        /// <param name="json_arr"></param>
        /// <returns>CustomForm</returns>
        public CustomForm SetFormData_Cancel(int ID_Created_By, string json_arr)
        {
            ServiceConfig srvcont = new ServiceConfig(_serviceconfigparameters);
                HelperClasses.Serializer srl = new HelperClasses.Serializer();

                CustomForm myForm = new CustomForm();
                myForm.FormHeader = srl.NTSoftJsonDeserialize<CustomFormHeader>(json_arr);

                if (string.IsNullOrEmpty(myForm.FormHeader.EditGuid) || myForm.FormHeader.ID_TableField == 0 || ID_Created_By == 0)
                {
                    myForm.Status = FormStatus.InvalidParameters;
                    myForm.StatusMessage = "Error in Formheader!";
                    myForm.FormHeader.IsReadOnly = true;
                    return myForm;
                }

                CancelFormTransactionHeader(ID_Created_By, ref myForm);

                if (myForm.Status == FormStatus.ProcedureInProgress)
                {
                    //2)
                    CancelFormTransactionRows(ID_Created_By, ref myForm);
                }

                return myForm;
        }
        /// <summary>
        /// rekord Cancel státusz állítása tbl_frmFormTransactionHeader, tbl_frmFormTransaction táblákban
        /// </summary>
        /// <param name="ID_Created_By"></param>
        public void SetFormData_Cancel(int ID_Created_By)
        {
            ServiceConfig srvcont = new ServiceConfig(_serviceconfigparameters);
                HelperClasses.Serializer srl = new HelperClasses.Serializer();

                CancelFormTransactionHeaderByUser(ID_Created_By);
                CancelFormTransactionRowsByUser(ID_Created_By);
        }