Exemple #1
0
        public async Task WriteAsync(Dictionary <Component, List <Context> > componentContexts)
        {
            BeforeWrite?.Invoke();

            foreach (Identifier id in ContractWriters.ContractIds)
            {
                Contracts[id] = ContractWriters.WriteContract(id);
                await Task.Yield();
            }

            foreach (Component component in componentContexts.Keys)
            {
                WriteComponent(component, componentContexts[component]);
                await Task.Yield();
            }

            AfterWrite?.Invoke();

            Contracts.Clear();
            ContextContracts.Clear();
        }
        public async void Init()
        {
            CheckUser();
            if (!LocalStorage.IsExist)
            {
                await UserDialogs.Instance.AlertAsync("Please login to continue", "Mech Login", "Ok");

                return;
            }

            IsRefreshing = true;

            try
            {
                if (CrossConnectivity.Current.IsConnected)
                {
                    var client = new HttpClient();

                    var response = await client.GetAsync(EndPoint);

                    if (response.IsSuccessStatusCode)
                    {
                        var content = await response.Content.ReadAsStringAsync();

                        var list = JsonConvert.DeserializeObject <List <Contract> >(content);

                        if (list != null)
                        {
                            Contracts.Clear();
                        }

                        foreach (var contract in list)
                        {
                            if (contract.Mechanic != null)
                            {
                                var contractitem = new ContractItem()
                                {
                                    Id             = contract.Id,
                                    Time           = contract.Time,
                                    IsConfirmed    = contract.PaidByCustomer,
                                    Name           = contract.Mechanic.Name,
                                    Title          = contract.Mechanic.Title,
                                    InitialCharges = contract.InitialCharges,
                                    RatePerKM      = contract.RatePerKM,
                                    RatePerHour    = contract.RatePerHour,
                                    KM             = contract.KM,
                                    ContactNo      = contract.Mechanic.ContactNo,
                                    IsWorkStarted  = contract.IsWorkStarted,
                                    WorkStarted    = contract.WorkStarted,
                                    IsWorkFinished = contract.IsWorkFinished,
                                    WorkFinished   = contract.WorkFinished
                                };
                                Contracts.Add(contractitem);
                            }
                            else if (contract.Customer != null)
                            {
                                var contractitem = new ContractItem()
                                {
                                    Id             = contract.Id,
                                    Time           = contract.Time,
                                    IsConfirmed    = contract.RecievedByMehanic,
                                    Name           = contract.Customer.Name,
                                    Title          = $"{contract.Customer.Vehicle} {contract.Customer.Model}",
                                    InitialCharges = contract.InitialCharges,
                                    RatePerKM      = contract.RatePerKM,
                                    RatePerHour    = contract.RatePerHour,
                                    KM             = contract.KM,
                                    ContactNo      = contract.Customer.ContactNo,
                                    IsWorkStarted  = contract.IsWorkStarted,
                                    WorkStarted    = contract.WorkStarted,
                                    IsWorkFinished = contract.IsWorkFinished,
                                    WorkFinished   = contract.WorkFinished
                                };
                                Contracts.Add(contractitem);
                            }
                        }
                    }
                    IsRefreshing = false;
                }
            }
            catch (Exception ex)
            {
                IsRefreshing = false;
            }

            IsRefreshing = false;
        }