Ejemplo n.º 1
0
        void Rl_Click(object sender, EventArgs e)
        {
            RelativeLayout rlValue = (RelativeLayout)sender;
            TextView       tvValue = (TextView)rlValue.GetChildAt(0);

            int IDdrug = (int)rlValue.GetTag(Resource.String.IDdrug);
            int IDinfo = (int)rlValue.GetTag(Resource.String.IDinfo);

//			string message = string.Format(@"Click to IDdrug:{0}, IDinfo:{0}", IDdrug, IDinfo);

//			Toast.MakeText(Activity,  message, ToastLength.Short).Show();

            string value = AttendanceResultManager.GetResultValue(newAttendanceResults, IDinfo, IDdrug);

            value = AttendanceResult.InvertStringBool(value);

            AttendanceResultManager.SetResultValue(newAttendanceResults, IDinfo, IDdrug, value);

            if (string.IsNullOrEmpty(value) || value.Equals(@"N"))
            {
                tvValue.SetTextAppearance(Activity, Resource.Style.text_danger);
                rlValue.SetBackgroundColor(Android.Graphics.Color.LightPink);
            }
            else
            {
                tvValue.SetTextAppearance(Activity, Resource.Style.text_success);
                rlValue.SetBackgroundColor(Android.Graphics.Color.LightGreen);
            }
            tvValue.Text = AttendanceResult.StringBoolToRussian(value);
            AttendanceResultManager.SetCurrentAttendanceResults(newAttendanceResults);
        }
Ejemplo n.º 2
0
        private void SlowMethod()
        {
//			Thread.Sleep (5000);
//
//							if (mAnimation.HasEnded) {
//				activity.RunOnUiThread(() => Toast.MakeText(context, @"Animation End", ToastLength.Short).Show());
//							} else {
//				activity.RunOnUiThread(() =>Toast.MakeText(context, @"Animation NOT End", ToastLength.Short).Show());
//							}

            //user.username = @"Zvezdova957";
            //user.password = @"624590701";

            user.username = tvUsername.Text;
            user.password = tvPassword.Text;

            bool isAuth = false;

            if (true)
            {
                isAuth = onlineAuth(user.username, user.password);
            }
            else
            {
                isAuth = offlineAuth(user.username, user.password);
            }

            if (isAuth)
            {
                //Toast.MakeText(context, @"Authentificated", ToastLength.Short).Show())

                WriteInfo(@"Обновление внутренних данных", 2000);
                try {
                    Common.SetCurrentUser(user);
                    PharmacyManager.Refresh();
                    AttendanceManager.Refresh();
                    AttendancePhotoManager.Refresh();
                    AttendanceResultManager.Refresh();
                    SyncQueueManager.Refresh();
                } catch (Exception ex) {
                    Log.Error(@"Login", ex.Message);
                    WriteDanger(@"ОШИБКА! ВХОД НЕ ВЫПОЛНЕН", 3000);
                    return;
                }
                WriteSuccess(@"ВХОД ВЫПОЛНЕН УСПЕШНО", 3000);
                Dismiss();
                OnSuccessSignedIn(EventArgs.Empty);
//				MessageBox.Show();
            }
            else
            {
                activity.RunOnUiThread(() => Toast.MakeText(context, @"NOT Authentificated", ToastLength.Short).Show());
                WriteDanger(@"ОШИБКА! ВХОД НЕ ВЫПОЛНЕН", 3000);
//				activity.RunOnUiThread (() => bSignUp.Visibility = ViewStates.Visible);
//				MessageBox.Show(@"NOT Authentificated");
            }

            //RunOnUiThread (() => textview.Text = "Method Complete");
        }
Ejemplo n.º 3
0
 public override void OnPause()
 {
     base.OnPause();
     if (Common.GetIsAttendanceRun(user.username))
     {
         AttendanceResultManager.SetCurrentAttendanceResults(newAttendanceResults);
     }
 }
Ejemplo n.º 4
0
 void UpRightB_Click(object sender, EventArgs e)
 {
     FragmentManager.BeginTransaction().Remove(fragment).Commit();
     AttendanceManager.SetCurrentAttendance(null);
     AttendanceResultManager.SetCurrentAttendanceResults(null);
     AttendancePhotoManager.SetCurrentAttendancePhotos(null);
     RefreshMainView();
 }
Ejemplo n.º 5
0
        void DecimalValue_AfterTextChanged(object sender, Android.Text.AfterTextChangedEventArgs e)
        {
            EditText       evValue = (EditText)sender;
            RelativeLayout rlValue = (RelativeLayout)evValue.Parent;
            int            IDdrug  = (int)rlValue.GetTag(Resource.String.IDdrug);
            int            IDinfo  = (int)rlValue.GetTag(Resource.String.IDinfo);

            AttendanceResultManager.SetResultValue(newAttendanceResults, IDinfo, IDdrug, e.Editable.ToString());
        }
Ejemplo n.º 6
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            // Use this to return your custom view for this Fragment
            // return inflater.Inflate(Resource.Layout.YourFragment, container, false);
            layoutInflater = inflater;

            base.OnCreateView(inflater, container, savedInstanceState);

            View rootView = inflater.Inflate(Resource.Layout.DrugInfoFragment, container, false);

            table = rootView.FindViewById <TableLayout> (Resource.Id.difTableLayout);

            user = Common.GetCurrentUser();

            project = Common.GetProject(user.username);

            infos = Common.GetInfos(user.username);

            List <Drug> allDrugs = Common.GetDrugs(user.username);

            if (project.drugsInWeek > 0)
            {
                DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
                int currWeek           = dfi.Calendar.GetWeekOfYear(DateTime.Now, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);
                int skip = (currWeek - project.startWeek) % (allDrugs.Count / project.drugsInWeek);

                drugs = (from drug in allDrugs
                         orderby drug.id
                         select drug
                         ).Skip(skip * project.drugsInWeek)
                        .Take(project.drugsInWeek)
                        .ToList <Drug> ();
            }
            else
            {
                drugs = allDrugs;
            }

//			AttendanceResultManager.SetCurrentAttendanceResults (null);

            newAttendanceResults = AttendanceResultManager.GetCurrentAttendanceResults();

            if ((newAttendanceResults == null) || (newAttendanceResults.Count == 0))
            {
                newAttendanceResults = AttendanceResultManager.GenerateResults(infos, drugs, @"N");
            }

            RefreshTable();

//			Activity.Window.SetSoftInputMode (SoftInput.StateAlwaysHidden);

            return(rootView);
        }
Ejemplo n.º 7
0
        void UpEndAttendance_Click(object sender, EventArgs e)
        {
            isVisitStart = false;
            Common.SetIsAttendanceRun(user.username, isVisitStart);
            locMgr.RemoveUpdates(this);

            // SAVE
            upPrevBlock.Visibility = ViewStates.Gone;
            upNextBlock.Visibility = ViewStates.Gone;
            FragmentManager.BeginTransaction().Remove(fragment).Commit();
            fragmentNum = 1;

            Attendance newAttendance = AttendanceManager.GetCurrentAttendance();
            List <AttendanceResult> newAttendanceResults = AttendanceResultManager.GetCurrentAttendanceResults();
            List <AttendancePhoto>  newAttendancePhotos  = AttendancePhotoManager.GetCurrentAttendancePhotos();
//			List<AttendanceGPSPoint> newAttendanceGPSPoints = AttendanceGPSPointManager.GetCurrentAttendanceGPSPoints ();
            int attID = AttendanceManager.SaveAttendance(newAttendance);

            if (newAttendanceResults != null)
            {
                AttendanceResultManager.SaveNewAttendanceResults(attID, newAttendanceResults);
            }
            if (newAttendancePhotos != null)
            {
                AttendancePhotoManager.SaveNewAttendancePhotos(attID, newAttendancePhotos);
            }
            if (attendanceGPSPoints != null)
            {
                AttendanceGPSPointManager.SaveNewAttendanceGPSPoints(attID, attendanceGPSPoints);
            }
            //Correct Pharmacy
            Pharmacy pharmacy = PharmacyManager.GetPharmacy(selectedPharmacyID);

            pharmacy.prev = DateTime.Now;
            pharmacy.next = DateTimeFormatInfo.CurrentInfo.Calendar.AddWeeks(pharmacy.prev, 2);
            PharmacyManager.SavePharmacy(pharmacy);

            //Clear
            AttendanceManager.SetCurrentAttendance(null);
            AttendanceResultManager.SetCurrentAttendanceResults(null);
            AttendancePhotoManager.SetCurrentAttendancePhotos(null);

            RefreshMainView();
        }
Ejemplo n.º 8
0
        void RefreshTable()
        {
            table.RemoveAllViews();

            TableRow.LayoutParams lpRow = new TableRow.LayoutParams();
            lpRow.Height  = TableLayout.LayoutParams.WrapContent;
            lpRow.Width   = TableLayout.LayoutParams.WrapContent;
            lpRow.Gravity = GravityFlags.Center;

            //header
            TableRow trHeader = new TableRow(Activity);
            TextView tvHDrug  = (TextView)layoutInflater.Inflate(Resource.Layout.DrugInfoDrugItem, null);

            //tvHDrug.SetTextAppearance (Activity, Resource.Style.text_header_large);
            tvHDrug.Text             = "Препараты";
            tvHDrug.LayoutParameters = lpRow;
            ((TableRow.LayoutParams)tvHDrug.LayoutParameters).SetMargins(0, 0, ToDIP(1), 0);
            tvHDrug.SetBackgroundColor(Android.Graphics.Color.White);
            trHeader.AddView(tvHDrug);

            int i = 0;

            TableRow.LayoutParams lpValue = new TableRow.LayoutParams();
            lpValue.Height  = TableLayout.LayoutParams.WrapContent;
            lpValue.Width   = TableLayout.LayoutParams.WrapContent;
            lpValue.Gravity = GravityFlags.Center;
            lpValue.SetMargins(ToDIP(1), ToDIP(1), ToDIP(1), ToDIP(1));

            foreach (var drug in drugs)
            {
                i++;

                TableRow trRow  = new TableRow(Activity);
                TextView tvDrug = (TextView)layoutInflater.Inflate(Resource.Layout.DrugInfoDrugItem, null);
                tvDrug.Gravity = GravityFlags.CenterVertical;
                tvDrug.SetTextAppearance(Activity, Resource.Style.text_row_large);
                tvDrug.Text             = string.Format(@"{0}: {1}", i, drug.fullName);
                tvDrug.LayoutParameters = lpRow;
                tvDrug.SetBackgroundColor(Android.Graphics.Color.White);
                trRow.AddView(tvDrug);

                foreach (var info in infos)
                {
                    if (trHeader.Parent == null)
                    {
                        TextView tvHInfo = (TextView)layoutInflater.Inflate(Resource.Layout.DrugInfoValueHeader, null);
                        tvHInfo.Text = info.name;
                        tvHInfo.SetBackgroundColor(Android.Graphics.Color.White);
                        trHeader.AddView(tvHInfo);
                    }

                    RelativeLayout rlValue = new RelativeLayout(Activity);
                    rlValue.SetGravity(GravityFlags.Center);
                    rlValue.SetMinimumHeight(ToDIP(64));
                    rlValue.SetMinimumWidth(ToDIP(64));
                    rlValue.LayoutParameters = lpValue;

                    rlValue.SetTag(Resource.String.IDinfo, info.id);
                    rlValue.SetTag(Resource.String.IDdrug, drug.id);
//					rlValue.SetTag (Resource.String.IDattendance, attendace.id);

                    string value = AttendanceResultManager.GetResultValue(newAttendanceResults, info.id, drug.id);

                    if (info.valueType == @"number")
                    {
                        RelativeLayout.LayoutParams nlpValue = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WrapContent, RelativeLayout.LayoutParams.MatchParent);
                        nlpValue.AddRule(LayoutRules.CenterInParent);
                        nlpValue.SetMargins(ToDIP(1), ToDIP(1), ToDIP(1), ToDIP(1));

                        EditText evValue = new EditText(Activity)
                        {
                            LayoutParameters = nlpValue
                        };
                        evValue.SetMinimumWidth(ToDIP(64));
                        evValue.SetMaxWidth(ToDIP(64));
                        evValue.InputType = Android.Text.InputTypes.ClassNumber;
                        evValue.Text      = value.Equals(@"N") ? string.Empty : value;
                        rlValue.AddView(evValue);
                        evValue.AfterTextChanged += NumberValue_AfterTextChanged;
                    }

                    if (info.valueType == @"decimal")
                    {
                        RelativeLayout.LayoutParams dlpValue = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WrapContent, RelativeLayout.LayoutParams.MatchParent);
                        dlpValue.AddRule(LayoutRules.CenterInParent);
                        dlpValue.SetMargins(ToDIP(1), ToDIP(1), ToDIP(1), ToDIP(1));

                        EditText evValue = new EditText(Activity)
                        {
                            LayoutParameters = dlpValue
                        };
                        evValue.SetMinimumWidth(ToDIP(64));
                        evValue.SetMaxWidth(ToDIP(64));
                        evValue.InputType = Android.Text.InputTypes.NumberFlagDecimal;
                        evValue.Text      = value.Equals(@"N") ? string.Empty : value;
                        rlValue.AddView(evValue);
                        evValue.AfterTextChanged += DecimalValue_AfterTextChanged;
                    }

                    if (info.valueType == @"boolean")
                    {
                        rlValue.Click += Rl_Click;

                        TextView tvValue = new TextView(Activity);
                        tvValue.Gravity = GravityFlags.Center;
                        if (string.IsNullOrEmpty(value) || value.Equals(@"N"))
                        {
                            tvValue.SetTextAppearance(Activity, Resource.Style.text_danger);
                            rlValue.SetBackgroundColor(Android.Graphics.Color.LightPink);
                        }
                        else
                        {
                            tvValue.SetTextAppearance(Activity, Resource.Style.text_success);
                            rlValue.SetBackgroundColor(Android.Graphics.Color.LightGreen);
                        }
                        tvValue.Text = AttendanceResult.StringBoolToRussian(value);
                        rlValue.AddView(tvValue);
                    }

                    trRow.AddView(rlValue);
                }

                if (trHeader.Parent == null)
                {
                    table.AddView(trHeader);
                    table.AddView(GetDelim(Android.Graphics.Color.Black));
                }
                table.AddView(trRow);
                table.AddView(GetDelim(Android.Graphics.Color.Brown));
            }
        }
Ejemplo n.º 9
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.º 10
0
        void UpLoadAttendances()
        {
            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(@"Не удалось пройти аутентификацию!"));
                return;
            }

            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.sqtAttendance) && (!q.isSync))
                    {
                        var client = new RestClient(Settings.URLs.Host);

                        Attendance oldAttendance = SyncQueueManager.GetAttendace(q.fileLocation);
                        RunOnUiThread(() => progressDialog.SetMessage(string.Format(@"Загрузка посещения с id:{0}", oldAttendance.id)));
                        request = new RestRequest(@"Attendance/", Method.POST);
                        request.AddCookie(cookieName, cookieValue);
                        request.RequestFormat = DataFormat.Json;
                        request.JsonSerializer.ContentType = @"application/json; charset=utf-8";
                        //request.AddBody(oldAttendance);
                        request.AddParameter(@"application/json; charset=utf-8", oldAttendance.ToJSON(), ParameterType.RequestBody);
                        var respAttendance = client.Execute <Attendance>(request);

                        Attendance newAttendance = respAttendance.Data;
                        //					Thread.Sleep (500);

                        switch (respAttendance.StatusCode)
                        {
                        case HttpStatusCode.OK:
                        case HttpStatusCode.Created:
                            if (AttendanceResultManager.CreateItemsForSync(oldAttendance, newAttendance) &&
                                AttendancePhotoManager.CreateItemsForSync(oldAttendance, newAttendance) &&
                                AttendanceGPSPointManager.CreateItemsForSync(oldAttendance, newAttendance)
                                )
                            {
                                q.isSync = true;
                                SyncQueueManager.SaveSyncQueue(q, false);
                                RunOnUiThread(() => {
                                    progressDialog.SetMessage(string.Format(@"Посещение с id:{0} ЗАГРУЖЕНО!", oldAttendance.id));
                                    //								RefreshContent ();
                                });
                            }
                            else
                            {
                                RunOnUiThread(() => {
                                    progressDialog.SetMessage(string.Format(@"Не удалось скорректировать данные для посещения с id:{0} ОШИБКА!", oldAttendance.id));
                                    //								RefreshContent ();
                                });
                            }
                            continue;

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