public DBResult GetAccessCounter(BurialModelAccessCounterInput model)
        {
            BurialModelAccessCounterOutput result = null;
            var hasError  = false;
            var errorText = "";

            try
            {
                if (!ModelState.IsValid && model == null)
                {
                    hasError = true;
                }
                else
                {
                    result = CEM_BurialApplication.GetAccessCounter(model.BurialApplication);
                }
            }
            catch (Exception e)
            {
                hasError  = true;
                errorText = e.Message;
            }
            return(new DBResult {
                status = !hasError ? "Success" : "Fail", descripText = errorText, data = new BurialModelAccessCounterOutput {
                    AccessCounter = result.AccessCounter, OtpDate = result.OtpDate
                }
            });
        }
        public DBResult BurialApp(BurialModelAccessCounterInput model)
        {
            DBResult result    = null;
            var      hasError  = false;
            var      errorText = "";

            try
            {
                if (!ModelState.IsValid && model == null)
                {
                    hasError = true;
                }
                else
                {
                    result = CEM_BurialApplication.addAccessCounter(model);
                }
            }
            catch (Exception e)
            {
                hasError  = true;
                errorText = e.Message;
                return(new DBResult {
                    status = !hasError ? "Success" : "Fail", descripText = errorText, data = result.data
                });
            }
            return(new DBResult {
                status = !hasError ? "Success" : "Fail", descripText = errorText, data = result.data
            });
        }
예제 #3
0
        public async Task <ReturnResult> BurialConfirmationAsync(long burialApplication)
        {
            var hasError  = false;
            var burialApp = new BurialModelAccessCounterInput
            {
                BurialApplication = burialApplication,
            };
            var httpClient    = new HttpClient();
            var stringContent = new StringContent(JsonConvert.SerializeObject(burialApp), Encoding.UTF8, "application/json");
            var response      = await httpClient.PostAsync(Constants.BaseApiAddress + "/api/BurialsApi/OtpDate", stringContent);

            if (!response.IsSuccessStatusCode)
            {
                hasError = true;
            }

            return(new ReturnResult {
                status = !hasError ? "Success" : "Fail", descripText = response.StatusCode.ToString()
            });
        }
        public static DBResult addAccessCounter(BurialModelAccessCounterInput input)
        {
            var hasError  = false;
            var errorText = "";

            try
            {
                var updateBurialApp = DataAccess.Context.CEM_BurialApplication.Find(input.BurialApplication);
                if (updateBurialApp == null)
                {
                    return(new DBResult
                    {
                        status = "Fail",
                        descripText = "Record not found!",
                        success = false
                    });
                }
                else
                {
                    updateBurialApp.AccessCount          = (updateBurialApp.AccessCount ?? 0);
                    updateBurialApp.AccessCount          = updateBurialApp.AccessCount + 1;// input.AccessCounter;
                    updateBurialApp.CemeterySupervisorId = input.CemeterySupervisorId;

                    DataAccess.Context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                hasError  = true;
                errorText = ex.Message;
                return(new DBResult {
                    status = !hasError ? "Success" : "Fail", descripText = errorText
                });
            }

            return(new DBResult {
                status = !hasError ? "Success" : "Fail", descripText = errorText, data = new BurialModelAccessCounterOutput {
                    AccessCounter = input.AccessCounter
                }
            });
        }
        private void HandleScanResult(ZXing.Result result, long?burialAppId)
        {
            if (result != null && !string.IsNullOrEmpty(result.Text)) // Success
            {
                int  number;
                var  resultValue = result.Text.TrimStart('0');
                bool isNumber    = int.TryParse(resultValue, out number);

                if (isNumber)
                {
                    if (long.Parse(resultValue) == burialAppId || burialAppId == null)
                    {
                        var scannedItem = long.Parse(resultValue);

                        var currentDateTime = DateTime.Now;
                        ////check if burial application expired
                        var expiredApplication = (from burial in _sqLiteConnection.Table <Burial>()
                                                  where burial.BurialApplication.Equals(scannedItem)
                                                  select burial).FirstOrDefault();

                        if (expiredApplication == null)
                        {
                            Application.Current.MainPage.DisplayAlert("Warning",
                                                                      "Either the application expired or does not exist, Contact the municipality.",
                                                                      "OK");
                        }
                        else
                        {
                            if (expiredApplication.OptDate == null) //proceed
                            {
                                var supervisorId = SupervisorId;

                                if (true) //todo: vaidate cemetery check ...
                                {
                                    var qBurials = from row in _sqLiteConnection.Table <Burial>()
                                                   where row.BurialApplication == scannedItem
                                                   select new BurialModelAccessCounterOutput()
                                    {
                                        AccessCounter   = row.AccessCounter,
                                        OtpDate         = row.OptDate,
                                        DeceasedDetails = row.DeceasedDetails
                                    };
                                    var r = qBurials.FirstOrDefault();


                                    if (r == null)
                                    {
                                        Application.Current.MainPage.DisplayAlert("Error", "Error api connection", "OK");
                                    }
                                    else
                                    {
                                        var burialAppEdit = new BurialModelAccessCounterInput
                                        {
                                            BurialApplication = scannedItem,

                                            CemeterySupervisorId = (int?)supervisorId
                                        };


                                        var query = (from row in _sqLiteConnection.Table <Burial>()
                                                     where row.BurialApplication == burialAppEdit.BurialApplication
                                                     select row).FirstOrDefault();

                                        query.AccessCounter = query.AccessCounter + 1;
                                        _sqLiteConnection.ExecuteScalar <Burial>(
                                            "UPDATE Burial Set AccessCounter  = ? WHERE BurialApplication = ?",
                                            query.AccessCounter, query.BurialApplication);


                                        _burialOutPut = new BurialModelOutPut()
                                        {
                                            Undertaker        = query.Undertaker,
                                            AccessCount       = query.AccessCounter,
                                            BurialApplication = query.BurialApplication,
                                            CemeteryId        = _supervisor.CemeteryId,
                                            DeceasedDetails   = query.DeceasedDetails,
                                            SupervisorId      = query.CemeterySupervisorId,
                                            Name           = _supervisor.Name,
                                            Surname        = _supervisor.Surname,
                                            SupervisorName = _supervisor.Fullname,
                                            Cemetery       = query.Cemetery
                                        };
                                    }
                                }
                            }
                            else
                            {
                                if (expiredApplication.OptDate == null)
                                {
                                    Application.Current.MainPage.DisplayAlert("Warning", "Access Code " + expiredApplication.BurialApplication + " expired.", "OK");
                                    return;
                                }
                                var otpDate = (DateTime)expiredApplication.OptDate;
                                Application.Current.MainPage.DisplayAlert("Warning",
                                                                          "Access Code " + expiredApplication.BurialApplication + " expired. " +
                                                                          expiredApplication.OptDate + " (" +
                                                                          (currentDateTime - otpDate).Days + " day ago)", "OK");
                            }
                        }
                    }
                    else
                    {
                        Application.Current.MainPage.DisplayAlert("Error", "access denied", "OK");
                    }
                }
                else
                {
                    Application.Current.MainPage.DisplayAlert("Error", "Scanned code not allowed!", "OK");
                }
            }
            else // Canceled
            {
                Reload();
            }
        }