示例#1
0
        private async void AddField(object sender, EventArgs args)
        {
            try
            {
                var fi = configuration.Inspections.FirstOrDefault();

                var FieldInspection = new FieldInspection()
                {
                    Template        = fi.Key,
                    FieldName       = "Field " + (Inspections.Count + 1).ToString(),
                    CreatedBy       = User.Key,
                    Key             = Guid.NewGuid().ToString(),
                    Status          = DCAnalytics.Statuses.New,
                    ConfigurationId = fi.ConfigurationId,
                    DateTime        = DateTime.Now,
                    FarmerKey       = questionaire.Key,
                    Sections        = fi.Sections
                };

                FieldInspection.Sections.SelectMany(s => s.Questions).ForEach(q => q.Answers.Clear());

                if (FieldInspection.Sections.Count > 0 || FieldInspection.Sections.SelectMany(x => x.Questions).Count() > 0)
                {
                    await Navigation.PushAsync(new QSections(DCAnalytics.ObjectType.Inspection, questionaire, null, null, FieldInspection));
                }
                else
                {
                    await PopupNavigation.Instance.PushAsync(new MessageBox("This field inspection is incomplete, please contact admin for more information", MessageType.Exit, this), true);
                }
            }
            catch (Exception ex)
            {
                await PopupNavigation.Instance.PushAsync(new MessageBox(ex.StackTrace, MessageType.Exit, this), true);
            }
        }
示例#2
0
        public QSections(DCAnalytics.ObjectType objectType, Questionaire _questionaire, QuestionairePageState questionairePageState = null, Certification _certification = null, FieldInspection _fieldInspection = null)
        {
            InitializeComponent();
            controls                   = new UIControls(this);
            ObjectType                 = objectType;
            selectPageState            = this;
            promptPageState            = this;
            picturePageState           = this;
            locationPageState          = this;
            questionaire               = null;
            questionaire               = _questionaire;
            FieldInspection            = _fieldInspection;
            certification              = _certification;
            Title                      = questionaire.Name;
            this.questionairePageState = questionairePageState;
            sectionViews               = new List <SectionView>();
            _questionaireStatus        = string.IsNullOrEmpty(questionaire.Key) ? QuestionaireStatus.Create : QuestionaireStatus.Modify;
            _dbManager                 = new DatabaseManager();
            user          = AiDataStore.GetUser();
            configuration = AiDataStore.GetConfiguration();
            isValid       = true;

            Sections.Clear();
            Sections = (FieldInspection != null) ?
                       FieldInspection.Sections:
                       (certification != null) ?
                       certification.Sections:
                       questionaire.Sections;
            dependencies.Clear();
            navigatedTargetSections.Clear();
            controls.targets.Clear();
            Init();
        }
示例#3
0
 internal void Sync(FieldInspection fieldInspection, Question question)
 {
     this.fieldInspection = fieldInspection;
     foreach (Answer answer in question.Answers)
     {
         answer.questionKey = question.Key;
         Save(answer);
     }
 }
示例#4
0
 public bool SyncFieldInspection(FieldInspection inspection)
 {
     try
     {
         FieldInspectionProvider inspectionProvider = new FieldInspectionProvider(DbInfo);
         return(inspectionProvider.Sync(inspection));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
示例#5
0
 public HttpResponseMessage Post(FieldInspection inspection)
 {
     try
     {
         var provider = new SyncProvider(DbInfo);
         var synched  = provider.SyncFieldInspection(inspection);
         return(Request.CreateResponse(HttpStatusCode.OK, synched));
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.OK, ex.Message));
     }
 }
 public HttpResponseMessage Post(FieldInspection inspection)
 {
     try
     {
         var provider = new FieldInspectionProvider(DbInfo);
         var isSaved  = provider.Save(inspection);
         return(Request.CreateResponse(HttpStatusCode.OK, isSaved));
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message));
     }
 }
示例#7
0
        internal static async Task <HttpResponseMessage> SynchronizeInspection(FieldInspection inspection)
        {
            var uri = new Uri(string.Format(Constants.EndPoint + "/sync/inspection/", string.Empty));

            try
            {
                var json = JsonConvert.SerializeObject(inspection);

                var content  = new StringContent(json, Encoding.UTF8, "application/json");
                var response = await _client.PostAsync(uri, content);

                return(response);
            }
            catch (Exception ex)
            {
                return(new HttpResponseMessage(HttpStatusCode.ServiceUnavailable));
            }
        }
 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
 {
     if (objectType == typeof(FieldInspection))
     {
         JObject obj = serializer.Deserialize <JToken>(reader) as JObject;
         if (obj != null)
         {
             var inspection = new FieldInspection();
             inspection.ReadJson(obj);
             return(inspection);
         }
         else
         {
             return(null);
         }
     }
     else
     {
         return(null);
     }
 }
示例#9
0
        private void AddMore()
        {
            EnumList prices = _configuration.EnumerationLists.Add();

            prices.Name = "Prices";

            EnumListValue val = prices.EnumValues.Add();

            val.Code        = 2000;
            val.Description = "Coffee";

            val             = prices.EnumValues.Add();
            val.Code        = 2000;
            val.Description = "Cotton";

            val             = prices.EnumValues.Add();
            val.Code        = 2000;
            val.Description = "Vanilla";


            //Certifications
            FairTrade fairTrade = _configuration.Certifications.Add(CertificationTypes.FairTrade) as FairTrade;

            fairTrade.Farmer = new Questionaire(null);
            fairTrade.Name   = "fairTrade";
            Section section = fairTrade.Sections.Add();

            section.Name = "Section1";
            SubSection sb2 = section.SubSections.Add();

            sb2.Name = "SubSection1";
            var openQuestion1 = sb2.Questions.AddOpenQuestion();

            openQuestion1.QuestionText = "Where do you stay";
            openQuestion1.Name         = "Residence";

            var openQuestion = section.Questions.AddOpenQuestion();

            openQuestion.QuestionText = "Where do you stay";
            openQuestion.Name         = "Residence";


            openQuestion = fairTrade.Questions.AddOpenQuestion();
            openQuestion.QuestionText = "Where do you stay";
            openQuestion.Name         = "Residence";



            //organic
            Organic organic = _configuration.Certifications.Add(CertificationTypes.Organic) as Organic;

            organic.Farmer = new Questionaire(null);
            fairTrade.Name = "fairTrade";
            section        = fairTrade.Sections.Add();
            organic.Name   = "Section1";
            SubSection sb1 = section.SubSections.Add();

            sb1.Name     = "SubSection1";
            openQuestion = sb1.Questions.AddOpenQuestion();
            openQuestion.QuestionText = "Where do you stay";
            openQuestion.Name         = "Residence";

            openQuestion = section.Questions.AddOpenQuestion();
            openQuestion.QuestionText = "Where do you stay";
            openQuestion.Name         = "Residence";

            openQuestion = organic.Questions.AddOpenQuestion();
            openQuestion.QuestionText = "Where do you stay";
            openQuestion.Name         = "Residence";



            //
            UTZ utz = _configuration.Certifications.Add(CertificationTypes.UTZ) as UTZ;

            utz.Farmer = new Questionaire(null);
            utz.Name   = "fairTrade";


            section      = utz.Sections.Add();
            organic.Name = "Section1";
            SubSection sb = section.SubSections.Add();

            sb.Name      = "SubSection1";
            openQuestion = sb.Questions.AddOpenQuestion();
            openQuestion.QuestionText = "Where do you stay";
            openQuestion.Name         = "Residence";

            openQuestion = section.Questions.AddOpenQuestion();
            openQuestion.QuestionText = "Where do you stay";
            openQuestion.Name         = "Residence";


            openQuestion = utz.Questions.AddOpenQuestion();
            openQuestion.QuestionText = "Where do you stay";
            openQuestion.Name         = "Residence";



            //Trainings
            Training training = _configuration.Trainings.Add();

            training.Name      = "Training1";
            training.StartDate = DateTime.Now;
            training.EndDate   = DateTime.Now;


            //trainees
            var tra = training.Trainees.Add();

            tra.Name = "Nana";

            var topic = training.Topics.Add();

            topic.Name = "Topic1";

            var trainer = training.Trainers.Add();

            trainer.Name = "Kato";

            //Purchases
            Purchase purchase = _configuration.Purchases.Add();

            purchase.DateOfPurchase = DateTime.Now;
            purchase.Quantity       = 50;
            purchase.Prices         = _configuration.EnumerationLists.ByName("Prices");
            purchase.ProductPrice   = purchase.Prices.EnumValues.ByDescription("Coffee");
            purchase.Lotid          = "Lot90343";
            purchase.Products       = _configuration.EnumerationLists.ByName("Products");
            purchase.Product        = purchase.Products.EnumValues.ByDescription("Coffee");
            purchase.Farmer         = new Questionaire(null);

            Questionaire questionaire = _configuration.Questionaires[0];
            Section      section_o    = questionaire.Sections[0];
            OpenQuestion question     = section_o.Questions.AddOpenQuestion();

            question.QuestionText = "What's your name";
            question.Name         = "Name";
            Dependency dependency = question.Dependencies.Add();

            dependency.Target = questionaire.Sections[1];


            //inspection
            FieldInspection inspection = _configuration.Inspections.Add();

            inspection.FieldName = "Kasese 1";
            var fieldSection = inspection.Sections.Add();

            fieldSection.Name = "Field Section";

            var qn = fieldSection.Questions.Add(QuestionTypes.Open);

            qn.QuestionText = "Whats your name?";

            inspection.Farmer = _configuration.Questionaires[0];

            inspection.Coordinates.Add("Lat:78834;Long:459");


            //adding clients
            _configuration.Client.Contact   = "0775407583";
            _configuration.Client.CreatedBy = "Admin";
            _configuration.Client.Email     = "*****@*****.**";
            _configuration.Client.Name      = "Kakembo";
            User user = _configuration.Client.Users.Add(UserTypes.ClientUser);

            user.UserName  = "******";
            user.Password  = "******";
            user.Email     = "*****@*****.**";
            user.Firstname = "Nanana";
            user.IsAdmin   = true;
            user.Lastname  = "Nanana";
            user.Usercode  = "N009";
        }