示例#1
0
 private void SetGrower(Model.ShippedItemInstance shippedItemInstance)
 {
     //Set Grower as available
     Model.Party modelGrower = shippedItemInstance.Parties.FirstOrDefault(p => p.TypeCode != null && p.TypeCode.ToLower() == "grower");
     if (modelGrower != null)
     {
         Grower grower = Catalog.Growers.FirstOrDefault(c => c.Name == modelGrower.Name);
         if (grower == null)
         {
             grower = new Grower()
             {
                 Name = modelGrower.Name
             };
             if (modelGrower.Location?.Glnid != null)
             {
                 UniqueId id = new UniqueId()
                 {
                     Id = modelGrower.Location.Glnid, Source = "GLN", IdType = IdTypeEnum.String
                 };
                 grower.Id.UniqueIds.Add(id);
             }
             Catalog.Growers.Add(grower);
         }
     }
 }
示例#2
0
        private Grower LoadCustomer(XmlNode inputNode, out string growerId)
        {
            Grower grower = new Grower();

            // Required fields. Do not proceed if they are missing
            growerId    = inputNode.GetXmlNodeValue("@A");
            grower.Name = inputNode.GetXmlNodeValue("@B");
            if (growerId == null || grower.Name == null)
            {
                return(null);
            }

            grower.Id.UniqueIds.Add(ImportHelper.CreateUniqueId(growerId));

            // Optional fields
            var firstName = inputNode.GetXmlNodeValue("@C");

            if (!string.IsNullOrWhiteSpace(firstName))
            {
                grower.Name += ", " + firstName;
            }

            LoadContactInfo(inputNode, grower);

            _taskDocument.LoadLinkedIds(growerId, grower.Id);

            return(grower);
        }
示例#3
0
        public async Task <IActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var role = "Grower";
                var user = await _userHelper.AddUser(model, role);

                if (user == null)
                {
                    ModelState.AddModelError(string.Empty, "This email is already used.");
                    return(View(model));
                }

                var usergeneric = new Grower
                {
                    Plants = new List <Plant>(),
                    User   = user
                };

                _dataContext.Growers.Add(usergeneric);
                await _dataContext.SaveChangesAsync();

                return(View(model));
            }
            return(View(model));
        }
示例#4
0
        public ActionResult DeleteConfirmed(int id)
        {
            Grower grower = db.Growers.Find(id);

            db.Growers.Remove(grower);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit(Grower grower)
 {
     if (ModelState.IsValid)
     {
         m_repo.SaveGrower(grower);
         return(RedirectToAction("Index"));
     }
     return(View(grower));
 }
示例#6
0
    public void OpenGrowNewPanel(Grower grower, Action sowButtonCallback)
    {
        currentGrower = grower;

        growNewPanel.SetActive(true);
        IsOpened = true;

        sowButtonCB = sowButtonCallback;
    }
 public ActionResult Edit([Bind(Include = "id,UserId,NotificationPreference,name,phone,email,address1,address2,address3,address4,city,state,zip,IsActive")] Grower grower)
 {
     if (ModelState.IsValid)
     {
         db.Entry(grower).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(grower));
 }
示例#8
0
        private Grower Import(ISOCustomer isoCustomer)
        {
            Grower grower = new Grower();

            //Customer ID
            ImportIDs(grower.Id, isoCustomer.CustomerId);
            grower.ContextItems = ImportContextItems(isoCustomer.CustomerId, "ADAPT_Context_Items:Grower", isoCustomer);

            //Customer Name
            grower.Name = !string.IsNullOrEmpty(isoCustomer.CustomerFirstName) ? string.Concat(isoCustomer.CustomerFirstName, " ", isoCustomer.CustomerLastName) : isoCustomer.CustomerLastName;

            //Customer Address
            grower.ContactInfo = new ContactInfo();
            grower.ContactInfo.AddressLine1    = isoCustomer.CustomerStreet;
            grower.ContactInfo.PoBoxNumber     = isoCustomer.CustomerPOBox;
            grower.ContactInfo.PostalCode      = isoCustomer.CustomerPostalCode;
            grower.ContactInfo.City            = isoCustomer.CustomerCity;
            grower.ContactInfo.StateOrProvince = isoCustomer.CustomerState;
            grower.ContactInfo.Country         = isoCustomer.CustomerCountry;

            //Add to Catalog
            DataModel.Catalog.ContactInfo.Add(grower.ContactInfo);

            //Customer Phone/Email
            grower.ContactInfo.Contacts = new List <Contact>();
            if (!string.IsNullOrEmpty(isoCustomer.CustomerEmail))
            {
                grower.ContactInfo.Contacts.Add(new Contact {
                    Number = isoCustomer.CustomerEmail, Type = ContactTypeEnum.Email
                });
            }

            if (!string.IsNullOrEmpty(isoCustomer.CustomerMobile))
            {
                grower.ContactInfo.Contacts.Add(new Contact {
                    Number = isoCustomer.CustomerMobile, Type = ContactTypeEnum.MobilePhone
                });
            }

            if (!string.IsNullOrEmpty(isoCustomer.CustomerPhone))
            {
                grower.ContactInfo.Contacts.Add(new Contact {
                    Number = isoCustomer.CustomerPhone, Type = ContactTypeEnum.FixedPhone
                });
            }

            if (!string.IsNullOrEmpty(isoCustomer.CustomerFax))
            {
                grower.ContactInfo.Contacts.Add(new Contact {
                    Number = isoCustomer.CustomerFax, Type = ContactTypeEnum.Fax
                });
            }

            return(grower);
        }
示例#9
0
        /// <summary>
        /// Find a Grower using the referenced growerId.
        /// </summary>
        /// <param name="growerId"></param>
        /// <returns></returns>
        internal Grower GetGrower(int?growerId)
        {
            Grower grower = null;

            if (growerId.HasValue)
            {
                grower = DataModel.Catalog.Growers.Where(g => g.Id.ReferenceId == growerId)
                         .FirstOrDefault();
            }
            return(grower);
        }
        public ActionResult Create([Bind(Include = "id,name,phone,email,address1,address2,address3,address4,city,state,zip")] Grower grower)
        {
            if (ModelState.IsValid)
            {
                db.Growers.Add(grower);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(grower));
        }
示例#11
0
        public IEnumerable <Grower> Import(IEnumerable <ISOCustomer> isoCustomers)
        {
            List <Grower> growers = new List <Grower>();

            foreach (ISOCustomer isoCustomer in isoCustomers)
            {
                Grower grower = Import(isoCustomer);
                growers.Add(grower);
            }
            return(growers);
        }
示例#12
0
    public void OpenGrowStatPanel(Grower grower)
    {
        currentGrower = grower;

        SetPanelInfo();

        growStatPanel.SetActive(true);
        IsOpened = true;

        Debug.Log(currentGrower.GrowingCrop);
    }
示例#13
0
        private CTR MapGrower(Grower grower, int growerIndex, Dictionary <int, string> keyToIsoId)
        {
            var isoGrower = new CTR
            {
                B = grower.Name
            };

            isoGrower.A = isoGrower.GetIsoId(growerIndex);

            keyToIsoId.Add(grower.Id.ReferenceId, isoGrower.A);
            return(isoGrower);
        }
        public static void GetLoggedData(Catalog catalog, LoggedData loggedData)
        {
            Console.WriteLine("Logged Data: " + loggedData.Description);

            // Write out the grower/farm/field
            Grower grower = catalog.Growers.Find(x => x.Id.ReferenceId == loggedData.GrowerId);

            if (grower != null)
            {
                Console.WriteLine("Grower: " + grower.Name);
            }

            Farm farm = catalog.Farms.Find(x => x.Id.ReferenceId == loggedData.FarmId);

            if (farm != null)
            {
                Console.WriteLine("Farm: " + farm.Description);
            }

            Field field = catalog.Fields.Find(x => x.Id.ReferenceId == loggedData.FieldId);

            if (field != null)
            {
                Console.WriteLine("Field: " + field.Description);
            }

            foreach (OperationData opData in loggedData.OperationData)
            {
                Console.WriteLine("Operation: " + opData.OperationType);

                switch (opData.OperationType)
                {
                case OperationTypeEnum.Harvesting:
                    GetHarvestData(opData, catalog);
                    break;

                case OperationTypeEnum.SowingAndPlanting:
                    GetPlantingData(opData, catalog);
                    break;

                case OperationTypeEnum.CropProtection:
                case OperationTypeEnum.Fertilizing:
                    GetAsAppliedData(opData, catalog);
                    break;
                }
            }

            // Clean up
            loggedData.ReleaseSpatialData();

            Console.WriteLine();
        }
示例#15
0
 private static void AreEqual(XmlNode ctrNode, Grower grower, Dictionary <string, List <UniqueId> > linkList)
 {
     UniqueIdAssert.AreEqual(linkList, ctrNode.GetXmlAttribute("A"), grower.Id.UniqueIds);
     Assert.AreEqual(ctrNode.GetXmlAttribute("A"), grower.Id.FindIsoId());
     CheckName(ctrNode, grower);
     Assert.AreEqual(ctrNode.GetXmlAttribute("D"), grower.ContactInfo.AddressLine1);
     Assert.AreEqual(ctrNode.GetXmlAttribute("E"), grower.ContactInfo.PoBoxNumber);
     Assert.AreEqual(ctrNode.GetXmlAttribute("F"), grower.ContactInfo.PostalCode);
     Assert.AreEqual(ctrNode.GetXmlAttribute("G"), grower.ContactInfo.City);
     Assert.AreEqual(ctrNode.GetXmlAttribute("H"), grower.ContactInfo.StateOrProvince);
     Assert.AreEqual(ctrNode.GetXmlAttribute("I"), grower.ContactInfo.Country);
     CheckContacts(ctrNode, grower.ContactInfo.Contacts);
 }
        public Feature MapAsSingleFeature(FieldBoundary fieldBoundary)
        {
            if (_dataModel == null)
            {
                return(null);
            }

            Feature fieldBoundaryFeature = Map(fieldBoundary);

            if (fieldBoundaryFeature == null)
            {
                return(null);
            }

            Field adaptField = _dataModel.Catalog.Fields.Where(f => f.Id.ReferenceId == fieldBoundary.FieldId).FirstOrDefault();

            if (adaptField != null)
            {
                fieldBoundaryFeature.Properties.Add("Field", adaptField.Description);

                //Guid fieldguid = UniqueIdMapper.GetUniqueGuid(adaptField.Id, UniqueIdSourceCNH);
                //fieldBoundaryFeature.Properties.Add("FieldId", fieldguid);
                fieldBoundaryFeature.Properties.Add("FieldId", adaptField.Id.ReferenceId);

                Farm adaptFarm = _dataModel.Catalog.Farms.Where(f => f.Id.ReferenceId == adaptField.FarmId).FirstOrDefault();

                if (adaptFarm != null)
                {
                    fieldBoundaryFeature.Properties.Add("Farm", adaptFarm.Description);

                    Grower adaptGrower = _dataModel.Catalog.Growers.Where(f => f.Id.ReferenceId == adaptFarm.GrowerId).FirstOrDefault();

                    if (adaptGrower != null)
                    {
                        fieldBoundaryFeature.Properties.Add("Grower", adaptGrower.Name);
                    }
                }

                if (adaptField.GrowerId != null && !fieldBoundaryFeature.Properties.ContainsKey("Grower"))
                {
                    Grower adaptGrower = _dataModel.Catalog.Growers.Where(f => f.Id.ReferenceId == adaptFarm.GrowerId).FirstOrDefault();

                    if (adaptGrower != null)
                    {
                        fieldBoundaryFeature.Properties.Add("Grower", adaptGrower.Name);
                    }
                }
            }

            return(fieldBoundaryFeature);
        }
示例#17
0
        private string WriteCustomer(XmlWriter writer, Grower grower)
        {
            var customerId = grower.Id.FindIsoId() ?? GenerateId();

            writer.WriteStartElement(XmlPrefix);
            writer.WriteAttributeString("A", customerId);
            writer.WriteAttributeString("B", grower.Name);

            WriteContactInfo(writer, grower.ContactInfo);

            writer.WriteEndElement();

            return(customerId);
        }
        // GET: Growers/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Grower grower = db.Growers.Find(id);

            if (grower == null)
            {
                return(HttpNotFound());
            }
            return(View(grower));
        }
        // GET: Admin/Growers/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Grower grower = m_repo.GetGrowers().SingleOrDefault(g => g.Id == id);

            if (grower == null)
            {
                return(HttpNotFound());
            }
            return(View(grower));
        }
示例#20
0
        private static void CheckName(XmlNode ctrNode, Grower grower)
        {
            var bNode = ctrNode.GetXmlAttribute("B");
            var cNode = ctrNode.GetXmlAttribute("C");

            if (!String.IsNullOrWhiteSpace(cNode))
            {
                Assert.AreEqual(bNode + ", " + cNode, grower.Name);
            }
            else
            {
                Assert.AreEqual(bNode, grower.Name);
            }
        }
示例#21
0
    public void GrowPanelOpen(bool hasCrop, Grower grower)
    {
        if (hasCrop)
        {
            GrowUIManager.OpenGrowStatPanel(grower);
        }
        else
        {
            GrowUIManager.OpenGrowNewPanel(grower, sowButtonCallback: OpenSeedInven);
        }

        if (!touchBlocker.activeSelf)
        {
            touchBlocker.SetActive(true);
        }
    }
示例#22
0
        public OperationResponse Insert(Grower entity)
        {
            var result = new OperationResponse();

            try
            {
                var dbLocator = AmbientDbContextLocator.Get <RiverdaleDBContext>();
                dbLocator.Add(entity);
            }
            catch (Exception ex)
            {
                result.AddException($"Error adding Grower", ex);
            }

            return(result);
        }
示例#23
0
        public void GivenTaskWhenMapThenGrowerIdIsMapped()
        {
            _task.C = "CTR3";
            var grower = new Grower();

            grower.Id.UniqueIds.Add(new UniqueId
            {
                Source = UniqueIdMapper.IsoSource,
                IdType = IdTypeEnum.String,
                Id     = _task.C,
            });
            _dataModel.Catalog.Growers.Add(grower);

            var result = MapSingle();

            Assert.AreEqual(grower.Id.ReferenceId, result.GrowerId);
        }
示例#24
0
        //public OperationResponse<GrowerUpdateCommandOutputDTO> Update(GrowerUpdateCommandInputDTO input)
        //{
        //    var result = new OperationResponse<GrowerUpdateCommandOutputDTO>();
        //    var dbLocator = AmbientDbContextLocator.Get<RiverdaleDBContext>();
        //    {
        //        var entity = dbLocator.Set<Grower>().FirstOrDefault(o => o.Id == input.Id);
        //        if (entity != null)
        //        {
        //            entity.Name = input.Name;
        //        }

        //        dbLocator.SaveChanges();


        //        var dbResult = dbLocator.Set<Grower>().Where(o => o.Id == entity.Id).Select(o => new GrowerUpdateCommandOutputDTO
        //        {
        //            Id = o.Id,
        //            Name = o.Name
        //        }).FirstOrDefault();

        //        result.Bag = dbResult;
        //        return result;
        //    }
        //}

        public OperationResponse <GrowerDeleteCommandOutputDTO> Delete(Grower entity)
        {
            var result = new OperationResponse <GrowerDeleteCommandOutputDTO>();

            var dbLocator = this.AmbientDbContextLocator.Get <RiverdaleDBContext>();

            try
            {
                dbLocator.Set <Grower>().Remove(entity);
            }
            catch (Exception ex)
            {
                result.AddException("Error deleting Grower", ex);
            }

            return(null);
        }
示例#25
0
        private void LoadContactInfo(XmlNode inputNode, Grower grower)
        {
            var contactInfo = new ContactInfo();

            contactInfo.AddressLine1    = inputNode.GetXmlNodeValue("@D");
            contactInfo.PoBoxNumber     = inputNode.GetXmlNodeValue("@E");
            contactInfo.PostalCode      = inputNode.GetXmlNodeValue("@F");
            contactInfo.City            = inputNode.GetXmlNodeValue("@G");
            contactInfo.StateOrProvince = inputNode.GetXmlNodeValue("@H");
            contactInfo.Country         = inputNode.GetXmlNodeValue("@I");

            LoadContacts(inputNode, contactInfo);

            grower.ContactInfo = contactInfo;

            _taskDocument.Contacts.Add(contactInfo);
        }
示例#26
0
 public static GrowerViewModel Create(Grower grower)
 {
     if (grower == null)
     {
         return(null);
     }
     return(new GrowerViewModel
     {
         Id = grower.Id,
         FirstName = grower.FirstName,
         LastName = grower.LastName,
         Email = grower.Email,
         WorkPhone = grower.WorkPhoneFormatted,
         MailingName = grower.MailingName,
         MobilePhone = grower.MobilePhoneFormatted,
         CreatedDate = grower.CreatedDate,
         FullName = $"{grower.FirstName} {grower.LastName}"
     });
 }
示例#27
0
        public void GivenLoggedDataWithGrowerIdWhenMapThenTskCIsGrowerId()
        {
            var grower = new Grower();

            grower.Id.UniqueIds.Add(new UniqueId
            {
                IdType = IdTypeEnum.String,
                Id     = "CTR2",
                Source = UniqueIdMapper.IsoSource,
            });
            _catalog.Growers = new List <Grower> {
                grower
            };

            _loggedData.GrowerId = grower.Id.ReferenceId;

            var result = MapSingle();

            Assert.AreEqual("CTR2", result.C);
        }
示例#28
0
        public OperationResponse <GrowerDeleteCommandOutputDTO> LogicalDelete(Grower entity)
        {
            var result = new OperationResponse <GrowerDeleteCommandOutputDTO>();

            var dbLocator = this.AmbientDbContextLocator.Get <RiverdaleDBContext>();

            try
            {
                if (!(entity.IsDeleted ?? false))
                {
                    entity.DeletedAt = DateTime.UtcNow;
                    dbLocator.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                result.AddException("Error voiding Grower", ex);
            }

            return(null);
        }
示例#29
0
        private ISOCustomer Export(Grower adaptGrower)
        {
            ISOCustomer customer = new ISOCustomer();

            //Customer ID
            string customerId = adaptGrower.Id.FindIsoId() ?? GenerateId();

            customer.CustomerId = customerId;
            ExportIDs(adaptGrower.Id, customerId);
            ExportContextItems(adaptGrower.ContextItems, customerId, "ADAPT_Context_Items:Grower");

            //Customer Name
            customer.CustomerLastName = adaptGrower.Name;

            //Customer Address
            if (adaptGrower.ContactInfo != null)
            {
                customer.CustomerStreet     = adaptGrower.ContactInfo.AddressLine1;
                customer.CustomerCity       = adaptGrower.ContactInfo.City;
                customer.CustomerState      = adaptGrower.ContactInfo.StateOrProvince;
                customer.CustomerPostalCode = adaptGrower.ContactInfo.PostalCode;
                customer.CustomerPOBox      = adaptGrower.ContactInfo.PoBoxNumber;
                customer.CustomerCountry    = adaptGrower.ContactInfo.Country;

                //Customer phone/email
                Contact emailContact = adaptGrower.ContactInfo.Contacts.FirstOrDefault(c => c.Type == ContactTypeEnum.Email);
                customer.CustomerEmail = emailContact != null ? emailContact.Number : null;

                Contact phoneContact = adaptGrower.ContactInfo.Contacts.FirstOrDefault(c => c.Type == ContactTypeEnum.FixedPhone);
                customer.CustomerPhone = phoneContact != null ? phoneContact.Number : null;

                Contact faxContact = adaptGrower.ContactInfo.Contacts.FirstOrDefault(c => c.Type == ContactTypeEnum.Fax);
                customer.CustomerFax = faxContact != null ? faxContact.Number : null;

                Contact mobileContact = adaptGrower.ContactInfo.Contacts.FirstOrDefault(c => c.Type == ContactTypeEnum.MobilePhone);
                customer.CustomerMobile = mobileContact != null ? mobileContact.Number : null;
            }

            return(customer);
        }
示例#30
0
        public ModelEnvelope <Grower> Convert(GrowerDto pmGrower)
        {
            var grower = new Grower()
            {
                Name = pmGrower.Name
            };

            var growerCompoundId = grower.Id;
            var growerUniqueId   = _uniqueIdFactory.CreateGuid(pmGrower.Uid);

            growerCompoundId.UniqueIds.Add(growerUniqueId);

            var growerLink = new ReferenceLink
            {
                Id   = growerCompoundId,
                Rel  = Relationships.Self,
                Link = $"/Growers/{growerUniqueId.Source}/{growerUniqueId.Id}",
                Type = "get"
            };
            var farmsLink = new ReferenceLink
            {
                Rel  = typeof(Farm).ListRel(),
                Link = $"/Growers/{growerUniqueId.Source}/{growerUniqueId.Id}/Farms"
            };
            var fieldsLink = new ReferenceLink
            {
                Rel  = typeof(Field).ListRel(),
                Link = $"/Growers/{growerUniqueId.Source}/{growerUniqueId.Id}/Fields"
            };

            grower.Id.UniqueIds.Add(growerUniqueId);

            var growerEnvelope = new ModelEnvelope <Grower>(grower);

            growerEnvelope.Links.Add(growerLink);
            growerEnvelope.Links.Add(farmsLink);
            growerEnvelope.Links.Add(fieldsLink);

            return(growerEnvelope);
        }