示例#1
0
        public static void FillWithDefaultData(string name)
        {
            var client             = ViberBotClient.GetInstance();
            var googleSheetsClient = GoogleSheetsClient.GetInstanse();

            if (!googleSheetsClient.IsSheetExist(name))
            {
                return;
            }

            var firstRow = new List <object>();

            firstRow.Add(flatColName);
            firstRow.AddRange(GetMonthNames());
            firstRow.Add(dateColName);
            firstRow.Add(idColName);
            firstRow.Add(whoColName);

            googleSheetsClient.UpdateData(1, 1, firstRow, name);

            var flatNumbersColumn = new List <object>();

            flatNumbersColumn.AddRange(Enumerable.Range(1, client.Settings.FlatsNumber).Select(x => x.ToString()));

            googleSheetsClient.UpdateColData(2, 1, flatNumbersColumn, name);
        }
示例#2
0
        public static string GetFlatData(string flatNumber)
        {
            var googleSheetsClient = GoogleSheetsClient.GetInstanse();
            var data         = googleSheetsClient.ReadData();
            var flatRowIndex = data.Select(o => o[0].ToString()).ToList().IndexOf(flatNumber);

            var value = GetFlatValueFromData(flatNumber, data);

            if (!string.IsNullOrEmpty(value))
            {
                return(value);
            }

            //проверить предыдущий год
            var previouseYear = (DateTime.Now.Year - 1).ToString();

            if (googleSheetsClient.IsSheetExist(previouseYear))
            {
                data  = googleSheetsClient.ReadData(previouseYear);
                value = GetFlatValueFromData(flatNumber, data);
                if (!string.IsNullOrEmpty(value))
                {
                    return(value);
                }
            }
            return("отсутствуют");
        }
示例#3
0
        public static void UpdateContactsData(string value, User user)
        {
            var googleSheetsClient = GoogleSheetsClient.GetInstanse();
            var dataSheet          = contactsDataSheet;
            var data = googleSheetsClient.ReadData(dataSheet);

            var idColIndex = data[0].ToList().IndexOf(idColName);
            var userRow    = data.FirstOrDefault(r => r.Count > idColIndex && r[idColIndex].ToString() == user.Id);

            if (userRow != null)
            {
                var userRowIndex     = data.ToList().IndexOf(userRow);
                var contactsColIndex = data[0].ToList().IndexOf(contactsColName);

                var objectList = new List <object>()
                {
                    value
                };
                googleSheetsClient.UpdateData(userRowIndex + 1, contactsColIndex + 1, objectList, dataSheet);

                var dateColIndex = data[0].ToList().IndexOf(dateColName);

                objectList = new List <object>()
                {
                    DateTime.Now.ToString(_dateFormat)
                };
                googleSheetsClient.UpdateData(userRowIndex + 1, dateColIndex + 1, objectList, dataSheet);
            }
        }
示例#4
0
        public static void CheckDefaultSheet()
        {
            var googleSheetsClient = GoogleSheetsClient.GetInstanse();

            if (!googleSheetsClient.IsSheetExist(GoogleSheetsClient.DefaultSheet))
            {
                googleSheetsClient.CreateSheet(GoogleSheetsClient.DefaultSheet);
                FillWithDefaultData(GoogleSheetsClient.DefaultSheet);
            }
        }
示例#5
0
        public static GoogleSheetsClient InitGoogleSheetsClient(string appName, string spresdsheetId, string secrets_file)
        {
            //настроить загрузку через конфиг
            string defaultSheet = DateTime.Now.Year.ToString();

            var googleSheetsClient = GoogleSheetsClient.Init(appName, spresdsheetId, defaultSheet, secrets_file);

            googleSheetsClient.BeforeAction += CheckDefaultSheet;

            return(googleSheetsClient);
        }
示例#6
0
        public static void AddUserFlatNumber(string flatNumber, User user)
        {
            var googleSheetsClient = GoogleSheetsClient.GetInstanse();

            var dataSheet = contactsDataSheet;

            var data = googleSheetsClient.ReadData(dataSheet);

            var idColIndex = data[0].ToList().IndexOf(idColName);

            var flatRow      = data.FirstOrDefault(r => r.Count > idColIndex && r[idColIndex].ToString() == user.Id);
            var flatRowIndex = data.ToList().IndexOf(flatRow);

            if (flatRowIndex > 0)
            {
                var flatColIndex = data[0].ToList().IndexOf(flatColName);

                var flatNumbers = flatRow[flatColIndex].ToString();
                if (flatNumbers == "")
                {
                    flatNumbers = flatNumber.ToString();
                }
                else if (!flatNumbers.Contains(flatNumber.ToString()))
                {
                    var temp = flatNumbers.Split(',').ToList();
                    temp.Add(flatNumber.ToString());
                    flatNumbers = string.Join(",", temp);
                }

                var objectList = new List <object>()
                {
                    flatNumbers
                };
                googleSheetsClient.UpdateData(flatRowIndex + 1, flatColIndex + 1, objectList, dataSheet);

                var dataColIndex = data[0].ToList().IndexOf(dateColName);
                objectList = new List <object>()
                {
                    DateTime.Now.ToString(_dateFormat)
                };
                googleSheetsClient.UpdateData(flatRowIndex + 1, dataColIndex + 1, objectList, dataSheet);
            }
            else
            {
                var objectList = new List <object>()
                {
                    user.Id, flatNumber, user.Name, "", DateTime.Now.ToString(_dateFormat)
                };
                googleSheetsClient.CreateData(objectList, dataSheet);
            }
        }
示例#7
0
        public static List <string> CheckFlatData(string userId)
        {
            var googleSheetsClient = GoogleSheetsClient.GetInstanse();
            var dataSheet          = contactsDataSheet;
            var data         = googleSheetsClient.ReadData(dataSheet);
            var idColIndex   = data[0].ToList().IndexOf(idColName);
            var flatColIndex = data[0].ToList().IndexOf(flatColName);
            var flats        = data.FirstOrDefault(r => r.Count > 1 && r[idColIndex].ToString() == userId)[flatColIndex].ToString();
            var result       = new List <string>();

            if (!string.IsNullOrEmpty(flats))
            {
                result.AddRange(flats.Split(',').ToList());
            }
            return(result);
        }
示例#8
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            var googleSheetsClient = new GoogleSheetsClient(new AndroidGSheetConfigProvider(Assets));

            _registry = new Registry(googleSheetsClient);

            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.activity_main);

            // Setup.

            // Buttons.
            _btnAdd        = FindViewById <Button>(Resource.Id.btnAdd);
            _btnAdd.Click += BtnAddOnClick;

            // Edit Texts.
            _etDescription = FindViewById <EditText>(Resource.Id.editTextDescription);
            _etDescription.SetRawInputType(InputTypes.ClassText | InputTypes.TextFlagCapSentences);

            _etAmount = FindViewById <EditText>(Resource.Id.editTextAmount);
            _etAmount.SetRawInputType(InputTypes.ClassNumber);

            // Spinner Category.
            _spCategory = FindViewById <Spinner>(Resource.Id.spinnerCategory);
            _spCategory.ItemSelected += SpCategoryOnItemSelected;

            _categories.AddRange(_registry.QueryAllCategories());
            var adapterCategories = new ArrayAdapter <string>(this,
                                                              Android.Resource.Layout.support_simple_spinner_dropdown_item, _categories);

            adapterCategories.SetDropDownViewResource(Android.Resource.Layout.support_simple_spinner_dropdown_item);
            _spCategory.Adapter = adapterCategories;

            // Spinner Currency.
            _spCurrency = FindViewById <Spinner>(Resource.Id.spinnerCurrency);
            _spCurrency.ItemSelected += SpCurrencyOnItemSelected;

            _currencies.AddRange(_registry.QueryAllCurrencies());
            var adapterCurrencies = new ArrayAdapter <string>(this,
                                                              Android.Resource.Layout.support_simple_spinner_dropdown_item, _currencies);

            adapterCurrencies.SetDropDownViewResource(Android.Resource.Layout.support_simple_spinner_dropdown_item);
            _spCurrency.Adapter = adapterCurrencies;
        }
示例#9
0
        public static string GetContactsData(string userId)
        {
            var googleSheetsClient = GoogleSheetsClient.GetInstanse();

            var dataSheet = contactsDataSheet;

            var data = googleSheetsClient.ReadData(dataSheet);

            var idColIndex       = data[0].ToList().IndexOf(idColName);
            var userRow          = data.FirstOrDefault(r => r.Count > idColIndex && r[idColIndex].ToString() == userId);
            var userRowIndex     = data.ToList().IndexOf(userRow);
            var contactsColIndex = data[0].ToList().IndexOf(contactsColName);

            var contactsData = data[userRowIndex][contactsColIndex].ToString();

            return(string.IsNullOrWhiteSpace(contactsData)? "отсутствуют": contactsData);
        }
示例#10
0
        public static void AddUser(User user)
        {
            var googleSheetsClient = GoogleSheetsClient.GetInstanse();

            var dataSheet = contactsDataSheet;

            var data = googleSheetsClient.ReadData(dataSheet);

            var idColIndex = data[0].ToList().IndexOf(idColName);

            var flatRow      = data.FirstOrDefault(r => r.Count > idColIndex && r[idColIndex].ToString() == user.Id);
            var flatRowIndex = data.ToList().IndexOf(flatRow);

            if (flatRowIndex < 0)
            {
                var objectList = new List <object>()
                {
                    user.Id, "", user.Name, "", DateTime.Now.ToString(_dateFormat)
                };
                googleSheetsClient.CreateData(objectList, dataSheet);
            }
        }
示例#11
0
        public static void DeleteUserFlatNumber(string flatNumber, User user)
        {
            var googleSheetsClient = GoogleSheetsClient.GetInstanse();

            var dataSheet = contactsDataSheet;

            var data = googleSheetsClient.ReadData(dataSheet);

            var idColIndex = data[0].ToList().IndexOf(idColName);

            var flatRow      = data.FirstOrDefault(r => r.Count > idColIndex && r[idColIndex].ToString() == user.Id);
            var flatRowIndex = data.ToList().IndexOf(flatRow);


            if (flatRowIndex > 0)
            {
                var flatColIndex = data[0].ToList().IndexOf(flatColName);
                var dataColIndex = data[0].ToList().IndexOf(dateColName);

                var flatNumbers = flatRow[flatColIndex].ToString().Split(',').ToList();
                flatNumbers.Remove(flatNumber.ToString());
                var flatNumbersResult = string.Join(",", flatNumbers);

                var objectList = new List <object>()
                {
                    flatNumbersResult
                };
                googleSheetsClient.UpdateData(flatRowIndex + 1, flatColIndex + 1, objectList, dataSheet);

                objectList = new List <object>()
                {
                    DateTime.Now.ToString(_dateFormat)
                };
                googleSheetsClient.UpdateData(flatRowIndex + 1, dataColIndex + 1, objectList, dataSheet);

                //googleSheetsClient.DeleteDataRow(flatRowIndex+1, dataSheet);
            }
        }
示例#12
0
        public static void UpdateFlatData(string flatNumber, string value, User user)
        {
            var googleSheetsClient = GoogleSheetsClient.GetInstanse();
            var data         = googleSheetsClient.ReadData();
            var flatRowIndex = data.Select(o => o[0].ToString()).ToList().IndexOf(flatNumber);

            if (flatRowIndex > 0)
            {
                var objectList = new List <object>()
                {
                    value
                };
                googleSheetsClient.UpdateData(flatRowIndex + 1, DateTime.Now.Month + 1, objectList);

                var colIndex = data[0].ToList().IndexOf(dateColName);

                objectList = new List <object>()
                {
                    DateTime.Now.ToString(_dateFormat), user.Id, user.Name
                };
                googleSheetsClient.UpdateData(flatRowIndex + 1, colIndex + 1, objectList);
            }
        }