Example #1
0
        public List <EquipmentBillRate> GetBillRateList(int projectId)
        {
            List <EquipmentBillRate> list;
            ProjectEquipmentClass    projClass = ProjectEquipmentClass.GetProjectEquipmentClass(projectId, ClassCode);

            if (!UseOveride && (projClass?.UseOverride ?? false) == false)
            {
                list = EquipmentGroupBillRate.GetBillRatesForGroup(projectId, ClassCode, CategoryCode).Select(r => new EquipmentBillRate {
                    BillCycle = r.BillCycle, BillRate = r.BillRate, IsDefault = r.IsDefault
                }).ToList();
                if (list.Any())     //Link to project * group(class or category)
                {
                    return(list);
                }

                list = EquipmentGroupBillRate.GetBillRatesForGroup(null, ClassCode, CategoryCode).Select(r => new EquipmentBillRate {
                    BillCycle = r.BillCycle, BillRate = r.BillRate, IsDefault = r.IsDefault
                }).ToList();
                if (list.Any())     // Link to Group (class or category)
                {
                    return(list);
                }
            }

            list = EquipmentBillRate.GetBillRatesForEquipment(EqpNum);          // link to Equip
            if (list.Any())
            {
                return(list);
            }

            return(EquipmentDefaultBillRate.GetDefaultBillRates().Select(r => new EquipmentBillRate {
                BillCycle = r.BillCycle, BillRate = r.BillRate, IsDefault = r.IsDefault
            }).ToList());                                                                                                                                                                  // Link to Default
        }
        public override async Task <SyncResult> Receive(Guid token)
        {
            try
            {
                EquipmentDefaultBillRate.Refresh();
                using (HttpClient client = new HttpClient())
                {
                    client.Init(token);

                    HttpResponseMessage response = await client.GetAsync($"api/EquipmentDefaultBillRates?companyId={CompanyId}");

                    if (response.IsSuccessStatusCode)
                    {
                        UpdateStatus(EnumTableSyncStatus.Receiving);

                        List <EquipmentDefaultBillRate> list = await response.Content.ReadAsAsync <List <EquipmentDefaultBillRate> >();

                        list.ForEach(x =>
                        {
                            string sql = $"insert EquipmentDefaultBillRate(CompanyId, GroupType, BillCycle, BillRate, IsDefault, InSync) " +
                                         $"values({x.CompanyId}, '{(char)x.GroupType}', '{(char)x.BillCycle}', {x.BillRate}, '{x.IsDefault}', 1)";
                            MobileCommon.ExecuteNonQuery(sql);
                        });

                        UpdateStatus(EnumTableSyncStatus.CompleteReceive);
                        return(new SyncResult {
                            Successful = true
                        });
                    }
                    throw new Exception($"Response StatusCode={response.StatusCode}");
                }
            }
            catch (Exception e)
            {
                UpdateStatus(EnumTableSyncStatus.ErrorInReceive);
                return(new SyncResult {
                    Successful = false, Task = TableName, Message = e.Message
                });
            }
        }