예제 #1
0
 public bool addToCache(GeneralEntityDataset entity, int recordId)
 {
     foreach (var fv in entity.FieldValues)
     {
         _fieldValues.Rows.Add(
             recordId, fv.Name, fv.Value);
     }
     return(true);
 }
        public bool Save(GeneralEntityDataset entity, LocalEntity localEntity, int recordId)
        {
            lock (_localLock)
            {
                addToCache(entity, localEntity, recordId);
                _currentRecs++;

                if (_currentRecs >= batchSize)
                {
                    //we save
                    finalise();
                }
            }
            return(true);
        }
예제 #3
0
 public override int Update(List <T> clients)
 {
     foreach (var client in clients)
     {
         var ge = new GeneralEntityDataset()
         {
             EntityId     = client.EntityId,
             FormName     = _kindName,
             Id           = client.Id,
             FieldValues  = client.ToValuesList(),
             KindMetaData = client.KindMetaData
         };
         var saveable = new DbSaveableEntity(ge);
         saveable.Save();
     }
     return(0);
 }
예제 #4
0
        protected virtual void saveClientSummary(List <NameValuePair> data, KindKey clientId)
        {
            var clientSummary = new GeneralEntityDataset()
            {
                Id          = clientId,
                FormName    = _kindName.Value,
                EntityId    = clientId,
                FieldValues = getIndexedFormData(data)
            };

            var db = new LocalDB3().DB;
            //var count = db.Table<ppx.PPClientSummary>().Count();
            var ppclient = new T().Load(clientSummary) as T;

            new LocalDB3().DB.InsertOrReplace(ppclient);

            //count = db.Table<ppx.PPClientSummary>().Count();
        }
        public ILocalDbEntity Load(GeneralEntityDataset lookupEntry)
        {
            var expectedFields = Constants.LSP_IndexedFieldNames;
            var fieldValues    = lookupEntry.FieldValues;
            var allFields      = (from field in lookupEntry.FieldValues
                                  where expectedFields.Contains(field.Name)
                                  select field).ToDictionary(x => x.Name, y => y.Value);

            foreach (var field in expectedFields)
            {
                if (!allFields.ContainsKey(field))
                {
                    allFields[field] = "";
                }
            }

            this.KindKey  = lookupEntry.Id.Value;
            this.EntityId = new KindKey(KindKey);
            this.Id       = new KindKey(KindKey);

            this.KindMetaData = lookupEntry.KindMetaData;

            var      dateStr = allFields[Constants.FIELD_LSP_DATEOFVISIT];
            DateTime coreActivityDate;

            if (DateTime.TryParse(dateStr, out coreActivityDate))
            {
                this.CoreActivityDate = coreActivityDate;
            }
            this.InterviewDate = coreActivityDate;

            this.BeneficiarySex  = allFields[Constants.FIELD_LSP_BENEFICIARY_SEX];
            this.BeneficiaryName = allFields[Constants.FIELD_LSP_BENEFICIARY];
            this.BeneficiaryAge  = allFields[Constants.FIELD_LSP_BENEFICIARYAGE];
            this.NameofGroup     = allFields[Constants.FIELD_LSP_GROUPNAME];
            this.NameOfVillage   = allFields[Constants.FIELD_LSP_VILLAGE];
            return(this);
        }
예제 #6
0
        public ILocalDbEntity Load(GeneralEntityDataset lookupEntry)
        {
            var expectedFields = Constants.PP_IndexedFieldNames;
            var fieldValues    = lookupEntry.FieldValues;
            var allFields      = (from field in lookupEntry.FieldValues
                                  where expectedFields.Contains(field.Name)
                                  select field).ToDictionary(x => x.Name, y => y.Value);

            foreach (var field in expectedFields)
            {
                if (!allFields.ContainsKey(field))
                {
                    allFields[field] = "";
                }
            }

            this.KindKey      = lookupEntry.Id.Value;
            this.EntityId     = new KindKey(KindKey);
            this.Id           = lookupEntry.Id;
            this.KindMetaData = lookupEntry.KindMetaData;

            var deviceSize = string.Empty;

            if (allFields.TryGetValue(Constants.FIELD_PPX_DEVSIZE, out deviceSize))
            {
                this.DeviceSize = deviceSize;
            }

            var dateStr = allFields[Constants.FIELD_PPX_DATEOFVISIT];

            if (!string.IsNullOrWhiteSpace(dateStr))
            {
                this.PlacementDate = Convert.ToDateTime(dateStr);
            }
            else
            {
                this.PlacementDate = DateTime.MinValue;
            }

            CoreActivityDate = PlacementDate;

            var serial = allFields[Constants.FIELD_PPX_CARD_SERIAL];

            if (!string.IsNullOrWhiteSpace(serial))
            {
                this.FormSerial = Convert.ToInt32(serial);
            }
            else
            {
                this.FormSerial = -1;
            }

            this.Names = allFields[Constants.FIELD_PPX_CLIENTNAME];
            var mcnumber = allFields[Constants.FIELD_PPX_CLIENTIDNUMBER];

            if (!string.IsNullOrWhiteSpace(mcnumber))
            {
                this.ClientNumber = Convert.ToInt32(mcnumber);
            }
            else
            {
                this.ClientNumber = -1;
            }

            this.Telephone = allFields[Constants.FIELD_PPX_CLIENTTEL];
            this.Address   = allFields[Constants.FIELD_PPX_CLIENTPHYSICALADDR];
            return(this);
        }
예제 #7
0
 public ILocalDbEntity Load(GeneralEntityDataset clientSummary)
 {
     return(this);
 }
예제 #8
0
        public ILocalDbEntity Load(GeneralEntityDataset lookupEntry)
        {
            var expectedFields = Constants.VMMC_IndexedFieldNames;
            var fieldValues    = lookupEntry.FieldValues;
            var allFields      = (from field in lookupEntry.FieldValues
                                  where expectedFields.Contains(field.Name)
                                  select field).ToDictionary(x => x.Name, y => y.Value);

            foreach (var field in expectedFields)
            {
                if (!allFields.ContainsKey(field))
                {
                    allFields[field] = "";
                }
            }

            this.KindKey      = lookupEntry.Id.Value;
            this.EntityId     = new KindKey(KindKey);
            this.Id           = new KindKey(KindKey);
            this.KindMetaData = lookupEntry.KindMetaData;

            var      dateStr = allFields[Constants.FIELD_VMMC_DATEOFVISIT];
            DateTime coreActivityDate;

            if (DateTime.TryParse(dateStr, out coreActivityDate))
            {
                this.CoreActivityDate = coreActivityDate;
            }

            var      mcdatestr = allFields[Constants.FIELD_VMMC_MCDATE];
            DateTime mcdate;

            if (DateTime.TryParse(mcdatestr, out mcdate))
            {
                this.MCDate = mcdate;
            }

            this.LastName  = allFields[Constants.FIELD_VMMC_CLIENTLASTNAME];
            this.FirstName = allFields[Constants.FIELD_VMMC_CLIENTFIRSTNAME];

            var formSerial = allFields[Constants.FIELD_VMMC_CARD_SERIAL];

            if (!string.IsNullOrWhiteSpace(formSerial))
            {
                this.FormSerial = Convert.ToInt32(formSerial);
            }
            else
            {
                this.FormSerial = -1;
            }

            var vmmcNumber = allFields[Constants.FIELD_VMMC_MCNUMBER];

            if (!string.IsNullOrWhiteSpace(vmmcNumber))
            {
                this.MCNumber = Convert.ToInt32(vmmcNumber);
            }
            else
            {
                this.MCNumber = -1;
            }

            this.ClientTel = allFields[Constants.FIELD_VMMC_CLIENTTEL];

            var      dobStr = allFields[Constants.FIELD_VMMC_DOB];
            DateTime dob;

            if (DateTime.TryParse(dobStr, out dob))
            {
                this.DateOfBirth = dob;
            }
            return(this);
        }
예제 #9
0
        private GeneralEntityDataset getEntityDataset(List <NameValuePair> data, DateTime dateEdited)
        {
            KindKey       kindKey      = null;
            NameValuePair creationDate = null;
            var           metaData     = new KindMetaData()
            {
                chksum = 1,
                devid  = AppInstance.Instance.Configuration.Serial,
                facidx = 0
            };

            //we check if we are in an edit context and read values from there
            if (isInEditMode())
            {
                var jsonOldRecord   = this.Intent.GetStringExtra(Constants.BUNDLE_DATATOEDIT);
                var oldRecordEntity = JsonConvert
                                      .DeserializeObject <GeneralEntityDataset>(jsonOldRecord);
                kindKey      = new KindKey(oldRecordEntity.Id.Value);
                creationDate = oldRecordEntity.GetValue(Constants.SYS_FIELD_DATECREATED);
                if (!string.IsNullOrWhiteSpace(oldRecordEntity.KindMetaData))
                {
                    var oldMetaData = new KindMetaData().fromJson(new KindItem(oldRecordEntity.KindMetaData));
                    metaData.chksum = oldMetaData.chksum + 1;
                }
            }
            else
            {
                kindKey = new KindKey(AppInstance.Instance
                                      .LocalEntityStoreInstance.InstanceLocalDb.newId());
            }

            KindKey entityId = null;

            if (IsRegistrationEndPage())
            {
                //assign a key
                entityId = new KindKey(kindKey.Value);
                //we get the device size
                var moduleClientSummaries = getModuleClientSummaries(data);
                data.AddRange(moduleClientSummaries);
            }
            else
            {
                //also update client details but only if they have changes
                entityId = new KindKey(CurrentClient.EntityId.Value);
            }

            if (creationDate == null)
            {
                data.Add(new NameValuePair()
                {
                    Name  = Constants.SYS_FIELD_DATECREATED,
                    Value = dateEdited.ToString(System.Globalization.CultureInfo.InvariantCulture)
                });
            }

            var editDate = data
                           .Where(t => t.Name.Contains(Constants.SYS_FIELD_DATEEDITED))
                           .FirstOrDefault();

            if (editDate == null)
            {
                data.Add(new NameValuePair()
                {
                    Name  = Constants.SYS_FIELD_DATEEDITED,
                    Value = dateEdited.ToString(System.Globalization.CultureInfo.InvariantCulture)
                });
            }
            data.Add(new NameValuePair()
            {
                Name  = Constants.FIELD_ID,
                Value = kindKey.Value
            });
            data.Add(new NameValuePair()
            {
                Name  = Constants.FIELD_ENTITYID,
                Value = entityId.Value
            });

            var saveable = new GeneralEntityDataset()
            {
                Id           = kindKey,
                EntityId     = entityId,
                FormName     = _kindName.Value,
                FieldValues  = data,
                KindMetaData = metaData.getJson()
            };

            return(saveable);
        }