Beispiel #1
0
    public static GameData GenerateGame(string _name, string _year, string _genre, string _publisher,
                                        string _usSales, string _euSales, string _jpSales, string _otherSales, string _globalSales,
                                        string _criticScore, string _criticCount, string _userScore, string _userCount,
                                        string _developer, string _rating)
    {
        uint year = _year != "N/A" ? Convert.ToUInt32(_year) : 0;

        GENRE genre = ConvertStrToGenre(_genre);

        float usSales     = Convert.ToSingle(_usSales);
        float euSales     = Convert.ToSingle(_euSales);
        float jpSales     = Convert.ToSingle(_jpSales);
        float otherSales  = Convert.ToSingle(_otherSales);
        float globalSales = Convert.ToSingle(_globalSales);


        float criticScore = (_criticScore != "" && _criticScore != "tbd") ? Convert.ToSingle(_criticScore) : -1;
        uint  criticCount = (_criticCount != "" && _criticCount != "tbd") ? Convert.ToUInt32(_criticCount) : 0;
        float userScore   = (_userScore != "" && _userScore != "tbd") ? Convert.ToSingle(_userScore) : -1;
        uint  userCount   = (_userCount != "" && _userCount != "tbd") ? Convert.ToUInt32(_userCount) : 0;

        RATING rating = ConvertStrToRating(_rating);

        return(new GameData(_name, year, genre, _publisher, usSales, euSales, jpSales, otherSales, globalSales,
                            criticScore, criticCount, userScore, userCount, _developer, rating));
    }
Beispiel #2
0
    public GameData(string gameName, uint year, GENRE _genre, string _publisher,
                    float USSales, float EUSales, float JPSales, float otherSales, float globalSales,
                    float _criticScore, uint _criticCount,
                    float _userScore, uint _userCount,
                    string _developer, RATING _gameRating)
    {
        name        = gameName;
        releaseYear = year;
        genre       = _genre;

        salesUS     = USSales;
        salesEU     = EUSales;
        salesJP     = JPSales;
        salesOther  = otherSales;
        salesGlobal = globalSales;

        criticScore = _criticScore;
        criticCount = _criticCount;
        userScore   = _userScore;
        userCount   = _userCount;

        developer  = _developer;
        publisher  = _publisher;
        gameRating = _gameRating;
    }
Beispiel #3
0
        public async Task <RATING> AddRating(string userId, string playerId, string shot, string pass, string dribb, string defence, string speed)
        {
            await Initialize();



            var rating = new RATING
            {
                UserID       = userId,
                PlayerInfoID = playerId,
                Shot         = shot,
                Pass         = pass,
                Dribbling    = dribb,
                Defense      = defence,
                Speed        = speed,
                DateUtc      = DateTime.UtcNow
            };


            await ratingsTable.InsertAsync(rating);

            await SyncRatings();

            //return coffee
            return(rating);
        }
Beispiel #4
0
        public void luudonhang(DONHANG dh, List <CTDH> ctdh)
        {
            DONHANG donhang = new DONHANG
            {
                MACUSTOMER = dh.MACUSTOMER,
                NGAYMUA    = dh.NGAYMUA,
                DIACHI     = dh.DIACHI,
                SDT        = dh.SDT,
                TONGTIEN   = dh.TONGTIEN,
                GHICHU     = dh.GHICHU
            };

            db.DONHANGs.Add(donhang);
            db.SaveChanges();
            int         iddonhang = donhang.MADH;
            List <CTDH> listct    = new List <CTDH>();

            listct = ctdh;
            var listrating = new List <RATING>();

            foreach (var item in listct)
            {
                CTDH ct = new CTDH();
                ct.MADH       = iddonhang;
                ct.MASP       = item.MASP;
                ct.MAMERCHANT = item.MAMERCHANT;
                ct.SOLUONG    = item.SOLUONG;
                ct.THANHTIEN  = item.THANHTIEN;
                ct.TINHTRANG  = item.TINHTRANG;
                ct.MAKICHCO   = item.MAKICHCO;
                ct.GIAGIAM    = item.GIAGIAM;
                db.CTDHs.Add(ct);
                db.SaveChanges();
                if (listrating.Exists(x => x.MADH == item.MADH) && listrating.Exists(x => x.MASP == item.MASP))
                {
                }
                else
                {
                    listrating.Add(new RATING()
                    {
                        MADH = item.MADH, MASP = item.MASP
                    });
                    RATING rating = new RATING();
                    rating.MADH       = iddonhang;
                    rating.MASP       = item.MASP;
                    rating.MAMERCHANT = item.MAMERCHANT;
                    rating.MACUSTOMER = dh.MACUSTOMER;
                    rating.RATING_M   = null;
                    rating.RATING_C   = null;
                    rating.NGAYRATING = null;
                    rating.TRANGTHAI  = 0;
                    RATINGDAL ratingdal = new RATINGDAL();
                    ratingdal.addrating(rating);
                    db.SaveChanges();
                }
            }
        }
Beispiel #5
0
        public async Task <RATING> UpadteRating(RATING selected)
        {
            await Initialize();

            await ratingsTable.UpdateAsync(selected);

            await SyncRatings();

            return(selected);
        }
 public bool UpdateRating(int userid, int bookid, int rating)
 {
     try
     {
         RATING Mockrating = dataAccess.RATINGs.FirstOrDefault(r => r.BOOKID == bookid && r.USERID == userid);
         Mockrating.RATING1 = rating;
         dataAccess.SaveChanges();
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Beispiel #7
0
    public static RATING ConvertStrToRating(string s)
    {
        RATING detectedRating = RATING.UNKNOWN;

        switch (s.Trim())
        {
        case "E":
        case "K-A":
            detectedRating = RATING.E;
            break;

        case "M":
            detectedRating = RATING.M;
            break;

        case "T":
            detectedRating = RATING.T;
            break;

        case "E10+":
            detectedRating = RATING.E10;
            break;

        case "AO":
            detectedRating = RATING.AO;
            break;

        case "EC":
            detectedRating = RATING.EC;
            break;

        case "RP":
            detectedRating = RATING.RP;
            break;

        case "":
            detectedRating = RATING.UNKNOWN;
            break;

        default:
            Debug.LogError("Unknown rating: " + s);
            break;
        }
        return(detectedRating);
    }
        public RatePlayersPage(PlayerInfo info, RATING rate)
        {
            InitializeComponent();
            SetComponents();

            current = rate;

            azureService = DependencyService.Get <AzureService>();

            setGeneralRating(rate.getGeneralRating());

            PlayerName.Text = info.FirstName + " " + info.LastName;

            SpeedPicker.SelectedItem    = rate.Speed;
            PassPicker.SelectedItem     = rate.Pass;
            DribbingPicker.SelectedItem = rate.Dribbling;
            DefensePicker.SelectedItem  = rate.Defense;
            ShotPicker.SelectedItem     = rate.Shot;
        }
        public bool AddRating(int bookid, int userid, int rating)
        {
            try
            {
                RATING Mockrating = new RATING()
                {
                    BOOKID  = bookid,
                    RATING1 = rating,
                    USERID  = userid
                };

                dataAccess.RATINGs.InsertOnSubmit(Mockrating);
                dataAccess.SaveChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
        /// <summary>
        /// Метод сохранения данных в БД
        /// </summary>
        private void SaveToDatabase()
        {
            // Проверка, заполнен ли комментарий ОТС
            if (Comments.Text.Equals("") && pick_otc.SelectedIndex != 0)
            {
                DependencyService.Get <IMessage>().ShortAlert("Комментарий к оценке не заполнен");
                return;
            }
            var i = 1;

            foreach (var info in _photos)
            {
                if (info.Comment.Equals(""))
                {
                    DependencyService.Get <IMessage>().ShortAlert("Отсутствует комментарий для фотографии " + i);
                    return;
                }
                i++;
            }
            if (_typeOfRating == TypeNewRating.IsNew)
            {
                var rating = new RATING()
                {
                    C_ISSO           = _cIsso,
                    CURRENTRATING    = _lastRating,
                    RATINGDATE       = _dateMonth,
                    RATINGDATEEDIT   = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
                    RATINGS          = (int)EnumsHelper.GetValueFromDescription <Otc>(pick_otc.Items[pick_otc.SelectedIndex]),
                    COMMENTS         = Comments.Text,
                    LATITUDE_RATING  = _geoPosition.Latitude,
                    LONGITUDE_RATING = _geoPosition.Longitude,
                    CHECKOUTOFPLAN   = switchOTC.IsToggled,
                    OFFSET           = (long)_geoPosition.Timestamp.ToLocalTime().Offset.TotalMilliseconds,
                    SYNC             = false
                };
                _connection.InsertOrReplace(rating);
            }
            else if (_typeOfRating == TypeNewRating.IsEditable)
            {
                var update = new RATING()
                {
                    C_ISSO         = _cIsso,
                    CURRENTRATING  = _lastRating,
                    RATINGDATE     = _dateMonth,
                    RATINGDATEEDIT = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
                    RATINGS        = (int)EnumsHelper.GetValueFromDescription <Otc>(pick_otc.Items[pick_otc.SelectedIndex]),
                    COMMENTS       = Comments.Text,
                    CHECKOUTOFPLAN = switchOTC.IsToggled,
                    OFFSET         = (long)_geoPosition.Timestamp.ToLocalTime().Offset.TotalMilliseconds,
                    SYNC           = false
                };
                var sqlUpdate =
                    $"update RATING set CURRENTRATING={update.CURRENTRATING}, RATINGDATEEDIT={update.RATINGDATEEDIT}, RATINGS={update.RATINGS}, COMMENTS='{update.COMMENTS}', CHECKOUTOFPLAN={(update.CHECKOUTOFPLAN ? 1 : 0)}, SYNC={(update.SYNC ? 1 : 0)}" +
                    $" where C_ISSO={update.C_ISSO} and RATINGDATE={update.RATINGDATE}";
                _connection.Execute(sqlUpdate);
                //connection.Update(update);
            }
            if (_typeOfRating != TypeNewRating.IsPreviewed)
            {
                foreach (var info in _photos)
                {
                    var sqlPhotoUpdate =
                        $"update PHOTOS_RATING set COMMENT='{info.Comment}' where C_ISSO={info.CIsso} and RATINGDATE={info.DateRating} and PHOTODATE={info.PhotoDate}";
                    _connection.Execute(sqlPhotoUpdate);
                }
            }
            // Закрываем это окно
            Navigation.PopAsync();
        }
Beispiel #11
0
 public void addrating(RATING r)
 {
     db.RATINGs.Add(r);
     db.SaveChanges();
 }
Beispiel #12
0
        public override int Sync()
        {
            var ct = Ts.Token;

            Task.Factory.StartNew(async() =>
            {
                var watch = Stopwatch.StartNew();
                // Адрес с общим интерфейсом
                Device.BeginInvokeOnMainThread(() => { MyLabelInfoSync.Text = "Получение разрешения..."; });
                Thread.Sleep(1000);
                ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };
                var addressCommon =
                    $"https://{Convert.ToString(Application.Current.Properties["address"])}:{Convert.ToString(Application.Current.Properties["port"])}/ais7UpdateServerSecureBinding/Common";
                var endpointCommon = new EndpointAddress(addressCommon);
                //ChannelFactory<Iais7MobileCommonServerCore> factory_common = new ChannelFactory<Iais7MobileCommonServerCore>(GetBinding(), endpoint_common);
                // Адрес с интерфейсом для ISSO-S
                var addressIssoS =
                    $"https://{Convert.ToString(Application.Current.Properties["address"])}:{Convert.ToString(Application.Current.Properties["port"])}/ais7UpdateServerSecureBinding/IssoS";
                var endpointIssoS = new EndpointAddress(addressIssoS);

                // Инициализация клиентов для подключения к серверу
                //Ais7MobileCommonServerCoreXamarinClient client_common = new Ais7MobileCommonServerCoreXamarinClient(GetBinding(), endpoint_common);
                //Ais7MobileIssoSServerCoreXamarinClient client_isso_s = new Ais7MobileIssoSServerCoreXamarinClient(GetBinding(), endpoint_isso_s);


                //    //Создание event handler'ов
                //    client_isso_s.HttpsGetSessionIdForIssoSCompleted += Client_isso_s_HttpsGetSessionIdForIssoSCompleted; ;
                //    client_common.HttpsGetIssoListCompleted += Client_common_HttpsGetIssoListCompleted;
                //    client_isso_s.HttpsSetRatingInfoCompleted += Client_isso_s_HttpsSetRatingInfoCompleted;
                //    client_isso_s.HttpsSetPhotoIssoSCompleted += Client_isso_s_HttpsSetPhotoIssoSCompleted;
                //    client_isso_s.HttpsGetRatingInfoCompleted += Client_isso_s_HttpsGetRatingInfoCompleted;
                //    client_isso_s.HttpsReceiveInfoAboutPhotoForIssoSCompleted += Client_isso_s_HttpsReceiveInfoAboutPhotoForIssoSCompleted;
                //    client_isso_s.HttpsGetPhotoIssoSCompleted += Client_isso_s_HttpsGetPhotoIssoSCompleted;
                //    client_common.HttpsCloseSessionCompleted += Client_common_HttpsCloseSessionCompleted;


                //MyCommonXamarinClient my_client_common = new MyCommonXamarinClient(GetBinding(), endpoint_common);
                //MyIssoSXamarinClient my_client_s = new MyIssoSXamarinClient(GetBinding(), endpoint_isso_s);
                //IAis7MobileIssoSServerCoreXamarin interface_connection;
                //        if (Device.RuntimePlatform == Device.Android)
                //        {
                //            NewClassForConnection newClassForConnection = new NewClassForConnection(GetBinding(), endpoint_isso_s);
                //            interface_connection = newClassForConnection.ChannelFactory.CreateChannel();
                //            newClassForConnection.Endpoint.Binding.SendTimeout = TimeSpan.FromMilliseconds(20000);
                //            var res = interface_connection.HttpsGetSessionIdForIssoS(Login, Password);
                //            var res1 = newClassForConnection.HttpsGetSessionIdForIssoS(Login, Password);
                //            Console.WriteLine(res[0]);
                //        }
                //        else
                //        {
                //            NewClassForConnection newClassForConnectionIOS = new NewClassForConnection(GetBinding(), endpoint_isso_s);
                //            //var interface_connection_IOS = newClassForConnectionIOS.CreateConnection();
                //            //interface_connection = new NewClassForConnection(GetBinding(), endpoint_isso_s);
                //            newClassForConnectionIOS.Endpoint.Binding.SendTimeout = TimeSpan.FromMilliseconds(20000);
                //            //var res = Task.Factory.FromAsync<string, string, string[]>(newClassForConnectionIOS.BeginHttpsGetSessionIdForIssoS, newClassForConnectionIOS.EndHttpsGetSessionIdForIssoS, Login, Password, null);
                //            Console.WriteLine(res[0]);
                //        }

                // ПОЛНОЦЕННО РАБОТАЮЩИЙ КЛАСС!!!! УРАААА!

                var clientIssoS = Device.RuntimePlatform == Device.Android
                                        ? new ISSO_S_ClientBase(GetBinding(), endpointIssoS)
                                        : new ISSO_S_ClientBaseIOS(GetBinding(), endpointIssoS);
                var clientCommon = Device.RuntimePlatform == Device.Android
                                        ? new Common_ClientBase(GetBinding(), endpointCommon)
                                        : new Common_ClientBaseIOS(GetBinding(), endpointCommon);


                string[] result;
                try
                {
                    // Выставляем время на подключение
                    clientIssoS.Endpoint.Binding.SendTimeout = TimeSpan.FromSeconds(SecondsToWaitStart);
                    result = clientIssoS.HttpsGetSessionIdForIssoS(Login, Password);
                    if (result == null)
                    {
                        if (ct.IsCancellationRequested)
                        {
                            return;
                        }
                        MessageError =
                            "Время сессии истекло или нет подключения к серверу. Проверьте настройки подключения или обратитесь к администратору сервера.";
                        OnSyncFailed();
                        return;
                    }
                }
                catch
                {
                    if (ct.IsCancellationRequested)
                    {
                        return;
                    }
                    MessageError =
                        "Время сессии истекло или нет подключения к серверу. Проверьте настройки подключения или обратитесь к администратору сервера.";
                    OnSyncFailed();
                    return;
                }

                if (ct.IsCancellationRequested)
                {
                    return;
                }
                // Получение разрешения и id со списком ИССО
                // Если ошибка не пустая, то останавливаем и пишем об ошибке
                var error = result[3];
                if (!error.Equals(""))
                {
                    if (ct.IsCancellationRequested)
                    {
                        return;
                    }
                    MessageError = error;
                    OnSyncFailed();
                    return;
                }

                var id          = new Guid(result[0]);
                var nameCurator = result[1];
                if (!Application.Current.Properties.TryGetValue("user", out var _))
                {
                    Application.Current.Properties.Add("user", "");
                }
                Application.Current.Properties["user"] = nameCurator;
                await Application.Current.SavePropertiesAsync();
                // Подключение к БД
                var connection = App.CreateDatabase();
                Device.BeginInvokeOnMainThread(() =>
                {
                    MyLabelInfoSync.Text = "Получение ИССО...";
                    ((MasterDetailPage1Master)((MasterDetailPage1)Application.Current.MainPage).Master).SetTextForUser(nameCurator);
                });
                Thread.Sleep(500);

                // Получение списка ИССО
                HttpsIsso[] issos;
                try
                {
                    // Выставление времени
                    clientCommon.Endpoint.Binding.SendTimeout = TimeSpan.FromSeconds(SecondsToWait);
                    issos = clientCommon.HttpsGetIssoList(id);
                    if (issos == null)
                    {
                        if (ct.IsCancellationRequested)
                        {
                            return;
                        }
                        MessageError =
                            "Время сессии истекло или нет подключения к серверу. Проверьте настройки подключения или обратитесь к администратору сервера.";
                        OnSyncFailed();
                        return;
                    }
                }
                catch
                {
                    if (ct.IsCancellationRequested)
                    {
                        return;
                    }
                    MessageError =
                        "Время сессии истекло или нет подключения к серверу. Проверьте настройки подключения или обратитесь к администратору сервера.";
                    OnSyncFailed();
                    return;
                }

                if (ct.IsCancellationRequested)
                {
                    return;
                }
                // Удаляем из БД
                connection.Execute("delete from I_ISSO");
                int[] i = { 1 };
                foreach (var isso in issos)
                {
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        MyLabelInfoSync.Text = "Получение ИССО...\n[" + i[0] + " из " + issos.Length + "]";
                        i[0]++;
                    });
                    var iIsso = new I_ISSO(isso);
                    // Добавление ИССО в БД
                    connection.InsertOrReplace(iIsso);
                }

                Device.BeginInvokeOnMainThread(() => { MyLabelInfoSync.Text = "Передача сведений на сервер..."; });
                Thread.Sleep(500);
                // Передача информации на сервер
                var ratingTable = from rating in connection.Table <RATING>() where rating.SYNC.Equals(false) select rating;
                var ratings     = new List <RatingHttps>();
                foreach (var rating in ratingTable)
                {
                    var rate = new RatingHttps
                    {
                        CIsso          = rating.C_ISSO,
                        CurrentRating  = rating.CURRENTRATING,
                        Latitude       = rating.LATITUDE_RATING,
                        Longitude      = rating.LONGITUDE_RATING,
                        RatingIsso     = rating.RATINGS,
                        RatingDate     = rating.RATINGDATE,
                        RatingDateEdit = rating.RATINGDATEEDIT,
                        RatingExt      = rating.COMMENTS,
                        Offset         = rating.OFFSET,
                        CheckOut       = rating.CHECKOUTOFPLAN
                    };
                    ratings.Add(rate);
                }

                //Отправка сведений на сервер
                try
                {
                    if (ct.IsCancellationRequested)
                    {
                        return;
                    }
                    // Выставление времени для подключения
                    clientIssoS.Endpoint.Binding.SendTimeout = TimeSpan.FromSeconds(SecondsToWait);
                    clientIssoS.HttpsSetRatingInfo(id, ratings.ToArray());
                }
                catch
                {
                    if (ct.IsCancellationRequested)
                    {
                        return;
                    }
                    MessageError =
                        "Время сессии истекло или нет подключения к серверу. Проверьте настройки подключения или обратитесь к администратору сервера.";
                    OnSyncFailed();
                    return;
                }


                // Передача имеющихся фотографий на сервер
                Device.BeginInvokeOnMainThread(() => { MyLabelInfoSync.Text = "Передача фотографий на сервер..."; });
                Thread.Sleep(500);
                i[0] = 1;
                foreach (var isso in issos)
                {
                    // отправление фотографий происходит по каждой записи
                    foreach (var rating in ratings.Where(rating => rating.CIsso == isso.CIsso))
                    {
                        var photosRating = connection.Query <PHOTOS_RATING>(
                            "select * from PHOTOS_RATING where C_ISSO=? and RATINGDATE=? and SYNC=?", rating.CIsso, rating.RatingDate, false);
                        var photosToSend = new List <PhotoIssoS>();
                        foreach (var photos in photosRating)
                        {
                            Device.BeginInvokeOnMainThread(() =>
                            {
                                MyLabelInfoSync.Text =
                                    $"Передача фотографий на сервер для ИССО №{isso.CIsso}\n[{i[0]} из {photosRating.Count}]";
                            });
                            var photo = new PhotoIssoS
                            {
                                CIsso      = photos.C_ISSO,
                                RatingDate = photos.RATINGDATE,
                                PhotoDate  = photos.PHOTODATE,
                                Comment    = photos.COMMENT,
                                PhotoPath  = photos.PHOTOPATH
                            };
                            //string path = photos.PHOTOPATH;
                            //photo.PhotoPath = path.Substring(path.LastIndexOf('/') + 1);
                            if (!photo.PhotoPath.Equals(""))
                            {
                                try
                                {
                                    var imgArray = File.ReadAllBytes(Path.Combine(App.PathToPhoto, photo.PhotoPath));
                                    photo.Photo  = Convert.ToBase64String(imgArray);
                                }
                                catch (Exception)
                                {
                                    //ex.ToString();
                                    photo.PhotoPath = "";
                                }
                            }
                            else
                            {
                                photo.Photo = "";
                            }

                            photosToSend.Add(photo);
                            i[0]++;
                        }

                        try
                        {
                            if (ct.IsCancellationRequested)
                            {
                                return;
                            }
                            // Выставление времени для подключения
                            clientIssoS.Endpoint.Binding.SendTimeout = TimeSpan.FromSeconds(SecondsToWait);
                            // Передача фотографий
                            clientIssoS.HttpsSetPhotoIssoS(id, photosToSend.ToArray());
                        }
                        catch
                        {
                            if (ct.IsCancellationRequested)
                            {
                                return;
                            }
                            MessageError =
                                "Время сессии истекло или нет подключения к серверу. Проверьте настройки подключения или обратитесь к администратору сервера.";
                            OnSyncFailed();
                            return;
                        }
                    }
                }

                connection.Execute("update PHOTOS_RATING set SYNC=1 where SYNC=0");

                // Получаем значения рейтингов по коду CIsso и записываем в БД телефона
                Device.BeginInvokeOnMainThread(() => { MyLabelInfoSync.Text = "Получение сведений c сервера..."; });
                Thread.Sleep(500);

                i[0] = 1;
                foreach (var isso in issos)
                {
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        MyLabelInfoSync.Text =
                            $"Получение сведений c сервера...\n[{i[0]} из {issos.Length}]";
                    });
                    RatingHttps[] ratingHttps;
                    try
                    {
                        if (ct.IsCancellationRequested)
                        {
                            return;
                        }
                        // Выставление времени для подключения
                        clientIssoS.Endpoint.Binding.SendTimeout = TimeSpan.FromSeconds(SecondsToWait);
                        ratingHttps = clientIssoS.HttpsGetRatingInfo(id, isso.CIsso);
                        if (ratingHttps == null)
                        {
                            if (ct.IsCancellationRequested)
                            {
                                return;
                            }
                            MessageError =
                                "Время сессии истекло или нет подключения к серверу. Проверьте настройки подключения или обратитесь к администратору сервера.";
                            OnSyncFailed();
                            return;
                        }
                    }
                    catch
                    {
                        if (ct.IsCancellationRequested)
                        {
                            return;
                        }
                        MessageError =
                            "Время сессии истекло или нет подключения к серверу. Проверьте настройки подключения или обратитесь к администратору сервера.";
                        OnSyncFailed();
                        return;
                    }

                    if (ct.IsCancellationRequested)
                    {
                        return;
                    }
                    // Удаление данных из таблицы RATING
                    connection.Execute("delete from RATING where C_ISSO = ?", isso.CIsso);
                    foreach (var rate in ratingHttps)
                    {
                        var rating = new RATING(rate);
                        connection.InsertOrReplace(rating);
                    }

                    // Отправляем инфу о фотографиях на устройстве
                    var photos       = connection.Query <PHOTOS_RATING>("select * from PHOTOS_RATING where C_ISSO=?", isso.CIsso);
                    var photosToSend = new List <PhotoIssoS>();
                    foreach (var photo in photos)
                    {
                        var photoIssoS = new PhotoIssoS
                        {
                            CIsso      = photo.C_ISSO,
                            RatingDate = photo.RATINGDATE,
                            PhotoDate  = photo.PHOTODATE,
                            PhotoPath  = "",
                            Photo      = ""
                        };
                        photosToSend.Add(photoIssoS);
                    }

                    try
                    {
                        if (ct.IsCancellationRequested)
                        {
                            return;
                        }
                        // Выставление времени для подключения
                        clientIssoS.Endpoint.Binding.SendTimeout = TimeSpan.FromSeconds(SecondsToWait);
                        // Получение информации по непереданным фотографиям
                        clientIssoS.HttpsReceiveInfoAboutPhotoForIssoS(id, isso.CIsso, photosToSend.ToArray());
                    }
                    catch
                    {
                        if (ct.IsCancellationRequested)
                        {
                            return;
                        }
                        MessageError =
                            "Время сессии истекло или нет подключения к серверу. Проверьте настройки подключения или обратитесь к администратору сервера.";
                        OnSyncFailed();
                        return;
                    }

                    foreach (var rating in ratingHttps.Where(rating => rating.CIsso == isso.CIsso))
                    {
                        PhotoIssoS[] receivedPhotos;
                        try
                        {
                            if (ct.IsCancellationRequested)
                            {
                                return;
                            }
                            // Теперь получаем недостающие фотографии
                            receivedPhotos = clientIssoS.HttpsGetPhotoIssoS(id, isso.CIsso, rating.RatingDate);
                            if (receivedPhotos == null)
                            {
                                if (ct.IsCancellationRequested)
                                {
                                    return;
                                }
                                MessageError = "Нет подключения к серверу";
                                OnSyncFailed();
                                return;
                            }
                        }
                        catch
                        {
                            if (ct.IsCancellationRequested)
                            {
                                return;
                            }
                            MessageError =
                                "Время сессии истекло или нет подключения к серверу. Проверьте настройки подключения или обратитесь к администратору сервера.";
                            OnSyncFailed();
                            return;
                        }

                        if (ct.IsCancellationRequested)
                        {
                            return;
                        }
                        var localIndex = 0;
                        foreach (var ph in receivedPhotos)
                        {
                            if (!ph.PhotoPath.Equals("IsAlreadyOnPhone"))
                            {
                                var photosRating = new PHOTOS_RATING
                                {
                                    C_ISSO     = ph.CIsso,
                                    RATINGDATE = ph.RatingDate,
                                    PHOTODATE  = ph.PhotoDate,
                                    COMMENT    = ph.Comment
                                };
                                if (ph.PhotoPath.Equals(""))
                                {
                                    var date1 = DateTime.Now.ToString("yyyyMMdd_HHmmss");
                                    try
                                    {
                                        var name        = $"IMG_{date1}_{localIndex}.jpeg";
                                        var jpgFilename = Path.Combine(App.PathToPhoto, name);
                                        var img         = Convert.FromBase64String(ph.Photo);
                                        if (!Directory.Exists(App.PathToPhoto))
                                        {
                                            Directory.CreateDirectory(App.PathToPhoto);
                                        }

                                        File.WriteAllBytes(jpgFilename, img);
                                        photosRating.PHOTOPATH = name;
                                    }
                                    catch (Exception ex)
                                    {
                                        Console.WriteLine(ex.ToString());
                                    }
                                }
                                else
                                {
                                    photosRating.PHOTOPATH = "";
                                }

                                photosRating.SYNC = true;
                                connection.Insert(photosRating);
                            }

                            localIndex++;
                        }

                        i[0]++;
                    }
                }

                connection.Execute("Update RATING set SYNC = ? where SYNC = ?", true, false);
                //client_common.HttpsCloseSessionAsync(id);
                clientCommon.HttpsCloseSession(id);
                watch.Stop();
                ElapsedMs = watch.ElapsedMilliseconds;
                OnSyncSucceeded();
            }, ct);
            return(0);
        }
Beispiel #13
0
 public RatePlayersModel(PlayerInfo playerinfo, RATING rating)
 {
 }