Ejemplo n.º 1
0
        public static int AddToQueue(AttendanceGPSPoint attendanceGPSPoint, Attendance attendance)
        {
            SyncQueue queueItem = new SyncQueue() {
                type = SyncQueueType.sqtAttendanceGPSPoint,
                itemID = attendanceGPSPoint.id,
                attendanceDate = attendance.date
            };

            queueItem.fileLocation = Path.Combine(Common.DatabaseFileDir, fUserName, @"SyncQueue", String.Format("attendanceGPSPoint_{0}.xml", Guid.NewGuid()));

            new FileInfo(queueItem.fileLocation).Directory.Create();
            var serializer = new XmlSerializer(typeof(AttendanceGPSPoint));
            using (var writer = new StreamWriter(queueItem.fileLocation))
            {
                serializer.Serialize(writer, attendanceGPSPoint);
            }

            return SaveSyncQueue(queueItem, false);
        }
        /// <summary>
        /// Insert or update a AttendanceGPSPoint
        /// </summary>
        public static int SaveAttendanceGPSPoint(AttendanceGPSPoint item)
        {
            var max = 0;
            if (attendanceGPSPoints.Count > 0)
                max = attendanceGPSPoints.Max(x => x.id);

            if (item.id == 0) {
                item.id = ++max;

                attendanceGPSPoints.Add (item);
            } else {
                var i = attendanceGPSPoints.Find (x => x.id == item.id);
                if (i != null) {
                    i = item; // replaces item in collection with updated value
                } else {
                    attendanceGPSPoints.Add (item);
                }
            }

            WriteXml ();
            return item.id;
        }
Ejemplo n.º 3
0
 public static int AddToQueue(AttendanceGPSPoint attendanceGPSPoint, Attendance attendance)
 {
     return SyncQueueRepository.AddToQueue(attendanceGPSPoint, attendance);
 }
Ejemplo n.º 4
0
 public static int SaveAttendanceGPSPoint(AttendanceGPSPoint item)
 {
     return AttendanceGPSPointRepository.SaveAttendanceGPSPoint(item);
 }
Ejemplo n.º 5
0
        void RefreshContent()
        {
            llSyncItems.RemoveAllViews();
            queue = (List <SyncQueue>)SyncQueueManager.GetSyncQueue(selectedDate);
            foreach (var q in queue)
            {
                View view = LayoutInflater.Inflate(Resource.Layout.SyncFragmentItem, null);

                RelativeLayout rl = view.FindViewById <RelativeLayout> (Resource.Id.sfiRelativeLayout);
                ImageView      iv = view.FindViewById <ImageView> (Resource.Id.sfiStatusImage);

                TextView type = view.FindViewById <TextView> (Resource.Id.sfiTypeInfoText);
                TextView loc  = view.FindViewById <TextView> (Resource.Id.sfiLocationText);

                try {
                    if (q.isSync)
                    {
                        rl.SetBackgroundColor(Android.Graphics.Color.LightGreen);
                        iv.SetImageResource(Resource.Drawable.ic_check_circle_white_36dp);
                        type.SetTextAppearance(this, Resource.Style.text_success);
                        loc.SetTextAppearance(this, Resource.Style.text_success_small);
                    }
                    else
                    {
                        rl.SetBackgroundColor(Android.Graphics.Color.LightPink);
                        iv.SetImageResource(Resource.Drawable.ic_highlight_off_white_36dp);
                        type.SetTextAppearance(this, Resource.Style.text_danger);
                        loc.SetTextAppearance(this, Resource.Style.text_danger_small);
                    }

                    Attendance att   = null;
                    Pharmacy   pharm = null;
                    switch (q.type)
                    {
                    case SyncQueueType.sqtAttendance:
                        att       = AttendanceManager.GetAttendance(q.itemID);
                        pharm     = PharmacyManager.GetPharmacy(att.pharmacy);
                        type.Text = string.Format(@"Тип: Посещение аптеки {0} за дату {1}", pharm.fullName, att.date.ToString(@"d"));
                        loc.Text  = string.Format(@"Размещение: {0}", q.fileLocation);
                        break;

                    case SyncQueueType.sqtAttendanceResult:
                        AttendanceResult attRes = AttendanceResultManager.GetAttendanceResult(q.itemID);
                        att       = AttendanceManager.GetAttendance(attRes.attendance);
                        pharm     = PharmacyManager.GetPharmacy(att.pharmacy);
                        type.Text = string.Format(@"Тип: Значение по препарату в посещение аптеки {0} за дату {1}", pharm.fullName, att.date.ToString(@"d"));
                        loc.Text  = string.Format(@"Размещение: {0}", q.fileLocation);
                        break;

                    case SyncQueueType.sqtAttendanceGPSPoint:
                        AttendanceGPSPoint attGPS = AttendanceGPSPointManager.GetAttendanceGPSPoint(q.itemID);
                        att       = AttendanceManager.GetAttendance(attGPS.attendance);
                        pharm     = PharmacyManager.GetPharmacy(att.pharmacy);
                        type.Text = string.Format(@"Тип: GPS значение в посещение аптеки {0} за дату {1} - lat:{2}, lon:{3}", pharm.fullName, att.date.ToString(@"d"), attGPS.latitude, attGPS.longitude);
                        loc.Text  = string.Format(@"Размещение: {0}", q.fileLocation);
                        break;

                    case SyncQueueType.sqtAttendancePhoto:
                        AttendancePhoto attPho = AttendancePhotoManager.GetAttendancePhoto(q.itemID);
                        type.Text = string.Format(@"Фото: {0}", attPho.photoPath);
                        loc.Text  = q.fileLocation;
                        break;

                    default:
                        type.Text = @"Неизвестный тип файла";
                        type.SetTextColor(Android.Graphics.Color.DarkRed);
                        break;
                    }
                } catch (Exception ex) {
                    type.Text = @"Error:";
                    loc.Text  = ex.Message;
                }

                llSyncItems.AddView(view);
            }
        }
Ejemplo n.º 6
0
        void UpLoadAttendanceGPSPoints()
        {
            string cookieName  = string.Empty;
            string cookieValue = string.Empty;
            var    user        = Common.GetCurrentUser();

            var login = new RestClient(Settings.URLs.Host);

            //login.Authenticator = new SimpleAuthenticator("identifier", "*****@*****.**", "password", "q1234567");
            login.Authenticator   = new SimpleAuthenticator(@"identifier", user.username, @"password", user.password);
            login.CookieContainer = new CookieContainer();

            var  request  = new RestRequest(@"auth/local", Method.POST);
            var  response = login.Execute <User>(request);
            User userRes  = response.Data;

            if (userRes == null)
            {
                RunOnUiThread(() => progressDialog.SetMessage(@"Не удалось пройти аутентификацию!"));
            }

            cookieName  = response.Cookies[0].Name;
            cookieValue = response.Cookies[0].Value;

            var queueToUpload = (List <SyncQueue>)SyncQueueManager.GetSyncQueue(selectedDate);

            foreach (var q in queueToUpload)
            {
                try {
                    if ((q.type == SyncQueueType.sqtAttendanceGPSPoint) && (!q.isSync))
                    {
                        var client = new RestClient(Settings.URLs.Host);

                        //Debug.WriteLine(@"Получение информации о себе.", @"Info");
                        AttendanceGPSPoint attendanceGPSPoint = SyncQueueManager.GetAttendanceGPSPoint(q.fileLocation);
                        //Attendance attendance = AttendanceManager.GetAttendance (attendanceGPSPoint.attendance);
                        RunOnUiThread(() => progressDialog.SetMessage(string.Format(@"Загрузка GPS значений с id {0} по посещению с id:{1}", attendanceGPSPoint.id, attendanceGPSPoint.attendance)));
                        request = new RestRequest(@"AttendanceGPSPoint/", Method.POST);
                        request.AddCookie(cookieName, cookieValue);
                        request.RequestFormat = DataFormat.Json;
                        request.JsonSerializer.ContentType = @"application/json; charset=utf-8";
                        request.AddParameter(@"application/json; charset=utf-8", attendanceGPSPoint.ToJSON(), ParameterType.RequestBody);
                        //					attendanceResult.id = 0;
                        //					request.AddBody(attendanceResult);

                        var respAttendanceGPSPoint = client.Execute(request);

                        switch (respAttendanceGPSPoint.StatusCode)
                        {
                        case HttpStatusCode.OK:
                        case HttpStatusCode.Created:
                            q.isSync = true;
                            SyncQueueManager.SaveSyncQueue(q, false);
                            //						Thread.Sleep (500);
                            RunOnUiThread(() => {
                                progressDialog.SetMessage(string.Format(@"GPS значение с id {0} по посещению с id:{1} ЗАГРУЖЕНО!", attendanceGPSPoint.id, attendanceGPSPoint.attendance));
                                //							RefreshContent();
                            });
                            continue;

                        default:
                            //						Thread.Sleep (500);
                            RunOnUiThread(() => progressDialog.SetMessage(@"Не удалось загрузить GPS значение по посещению!"));
                            //						Thread.Sleep (1500);
                            continue;
                        }
                    }
                } catch (Exception ex) {
                    RunOnUiThread(() => progressDialog.SetMessage(@"Error : " + ex.Message));
                    //						Thread.Sleep (1500);
                    continue;
                }
            }
        }