private static void FlatBinstanceToViewModel(this BinViewModel inViewModel) { FlatBin flat = (FlatBin)inViewModel.Binstance; inViewModel.CribLength = flat.CribLength.ToString(); inViewModel.CribWidth = flat.CribWidth.ToString(); }
//Add New Bin (no photo) public BinPage() { InitializeComponent(); BindingContext = viewModel = new BinViewModel(); if (DeviceInfo.DeviceType == DeviceType.Physical) { TakePhotoAsync(); } YearCollected.Text = DateTime.Now.ToString("yyyy"); YearCollected.IsEnabled = false; viewModel.Binstance.YearCollected = YearCollected.Text; BinPicFrame.IsVisible = false; CreatedByLabel.IsVisible = false; CreatedByLabel.IsEnabled = false; CreatedBy.IsVisible = false; CreatedBy.IsEnabled = false; ModifiedByLabel.IsVisible = false; ModifiedByLabel.IsEnabled = false; ModifiedBy.IsVisible = false; ModifiedBy.IsEnabled = false; HasHopperHopperDisable(); HideCapacityFields(); HideContentsFields(); //CropYear.ItemsSource = viewModel.DateRange; //SetCropYear(); }
public async Task <IActionResult> Edit(Guid id, [Bind("SelectedRackID,Edition,Created,OwnerID,ID,RackIndexX,RackIndexY,RackIndexZ,Name,Description")] BinViewModel binViewModel) { if (id != binViewModel.ID) { return(NotFound()); } Bin bin = binViewModel.ToBin(); if (ModelState.IsValid) { try { bin.IncrementEdition(); bin.Rack = await _context.BinRack.FindAsync(binViewModel.SelectedRackID); _context.Update(bin); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PartsBinExists(bin.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(bin)); }
private static void RoundBinstanceToViewModel(this BinViewModel inViewModel) { RoundBin round = (RoundBin)inViewModel.Binstance; if (round.HasHopper.HasValue) { switch (round.HasHopper) { case true: inViewModel.HasHopper = 0; break; case false: inViewModel.HasHopper = 1; break; case null: inViewModel.HasHopper = -1; break; } } inViewModel.Radius = round.Radius.ToString(); inViewModel.WallHeight = round.WallHeight.ToString(); inViewModel.RoofHeight = round.RoofHeight.ToString(); inViewModel.HopperHeight = round.HopperHeight.ToString(); }
public static FlatBin MapBinToFlatType(this BinViewModel inViewModel, IBinstance bin) { FlatBin fbin = new FlatBin(bin); double d; try { fbin.CribLength = double.TryParse(inViewModel.CribLength, out d) ? d : 0.0; } catch (Exception) { fbin.CribLength = 0; } try { fbin.CribWidth = double.TryParse(inViewModel.CribWidth, out d) ? d : 0; } catch (Exception) { fbin.CribLength = 0; } return(fbin); }
//Add New Bin (photo) public BinPage(MediaFile photo) { InitializeComponent(); BindingContext = viewModel = new BinViewModel(); Cancel.IsEnabled = false; YearCollected.Text = DateTime.Now.ToString("yyyy"); YearCollected.IsEnabled = false; viewModel.Binstance.YearCollected = YearCollected.Text; BinPicFrame.IsVisible = false; BinPic.Source = ImageSource.FromStream(() => photo.GetStream()); viewModel.Binstance.Image = photo; BinPicFrame.IsVisible = true; CreatedByLabel.IsVisible = false; CreatedByLabel.IsEnabled = false; CreatedBy.IsVisible = false; CreatedBy.IsEnabled = false; ModifiedByLabel.IsVisible = false; ModifiedByLabel.IsEnabled = false; ModifiedBy.IsVisible = false; ModifiedBy.IsEnabled = false; HasHopperHopperDisable(); HideCapacityFields(); HideContentsFields(); //CropYear.ItemsSource = viewModel.DateRange; //SetCropYear(); }
private static void PolyBinstanceToViewModel(this BinViewModel inViewModel) { PolygonBin polygonBin = (PolygonBin)inViewModel.Binstance; inViewModel.SideHeight = polygonBin.SideHeight.ToString(); inViewModel.SideWidth = polygonBin.SideWidth.ToString(); inViewModel.NumberOfSides = polygonBin.NumberOfSides.ToString(); }
private static void GravityBinstanceToViewModel(this BinViewModel inViewModel) { GravityBin gravityBin = (GravityBin)inViewModel.Binstance; inViewModel.ChuteLength = gravityBin.ChuteLength.ToString(); inViewModel.HopperHeight = gravityBin.HopperHeight.ToString(); inViewModel.RectangleHeight = gravityBin.RectangleHeight.ToString(); inViewModel.RectangleLength = gravityBin.RectangleLength.ToString(); inViewModel.RectangleWidth = gravityBin.RectangleWidth.ToString(); }
private async void BinSelected(BinViewModel bvm) { if (!ScaleMode) { BinView bv = rackview.GetBinView(bvm); if (bv is BinView) { await rackscrollview.ScrollToAsync(bv, ScrollToPosition.Center, true); } } }
// GET: Bins/Create public async Task <IActionResult> Create() { BinViewModel binViewModel = new BinViewModel(); binViewModel.RackIndexX = 1; binViewModel.RackIndexY = 1; binViewModel.RackIndexZ = 1; binViewModel.Racks = await _context.BinRack.ToListAsync(); return(View(binViewModel)); }
public static GravityBin MapBinToGravityType(this BinViewModel inViewModel, IBinstance bin) { GravityBin gbin = new GravityBin(bin); double d; try { gbin.ChuteLength = double.TryParse(inViewModel.ChuteLength, out d) ? d : 0.0; } catch (Exception) { gbin.ChuteLength = 0; } try { gbin.HopperHeight = double.TryParse(inViewModel.HopperHeight, out d) ? d : 0; } catch (Exception) { gbin.HopperHeight = 0; } try { gbin.RectangleHeight = double.TryParse(inViewModel.RectangleHeight, out d) ? d : 0.0; } catch (Exception) { gbin.RectangleHeight = 0; } try { gbin.RectangleLength = double.TryParse(inViewModel.RectangleLength, out d) ? d : 0; } catch (Exception) { gbin.RectangleLength = 0; } try { gbin.RectangleWidth = double.TryParse(inViewModel.RectangleWidth, out d) ? d : 0.0; } catch (Exception) { gbin.RectangleWidth = 0; } return(gbin); }
public static double CalculateVolume(BinViewModel binViewModel) { double volume = 0; double d; //calculate //switch (binViewModel.BinType) //{ // case 0: // double CribLength = double.TryParse(binViewModel.CribLength, out d)? d : 0; // double CribWidth = double.TryParse(binViewModel.CribWidth, out d) ? d : 0; // double GrainHeight = double.TryParse(binViewModel.GrainHeight, out d) ? d : 0; // volume = FlatBinGrainVolume(CribLength, CribWidth, GrainHeight); // break; // case 1: // double RectangleLength = double.TryParse(binViewModel.RectangleLength, out d) ? d : 0; // double RectangleWidth = double.TryParse(binViewModel.RectangleWidth, out d) ? d : 0; // double HopperHeight = double.TryParse(binViewModel.HopperHeight, out d) ? d : 0; // double ChuteLength = double.TryParse(binViewModel.ChuteLength, out d) ? d : 0; // GrainHeight = double.TryParse(binViewModel.GrainHeight, out d) ? d : 0; // volume = GravityBinGrainVolume(RectangleLength, RectangleWidth, HopperHeight, ChuteLength, GrainHeight); // break; // case 2: // double NumberOfSides = double.TryParse(binViewModel.NumberOfSides, out d) ? d : 0; // double SideWidth = double.TryParse(binViewModel.SideWidth, out d) ? d : 0; // GrainHeight = double.TryParse(binViewModel.GrainHeight, out d) ? d : 0; // double GrainConeHeight = double.TryParse(binViewModel.GrainConeHeight, out d) ? d : 0; // volume = PolygonBinGrainVolume(NumberOfSides, SideWidth, // GrainHeight, GrainConeHeight); // break; // case 3: // double Radius = double.TryParse(binViewModel.SideWidth, out d) ? d : 0; // double WallHeight = double.TryParse(binViewModel.WallHeight, out d) ? d : 0; // double RoofHeight = double.TryParse(binViewModel.RoofHeight, out d) ? d : 0; // HopperHeight = double.TryParse(binViewModel.HopperHeight, out d) ? d : 0; // GrainHeight = double.TryParse(binViewModel.GrainHeight, out d) ? d : 0; // GrainConeHeight = double.TryParse(binViewModel.GrainConeHeight, out d) ? d : 0; // volume = RoundBinGrainVolume(Radius, WallHeight, RoofHeight, // HopperHeight, GrainHeight, GrainConeHeight); // break; // default: // volume = 0; // break; //} return(volume); }
/// <summary> /// For Autoscrolling /// </summary> /// <param name="bvm"></param> /// <returns></returns> public BinInEditRackView GetBinView(BinViewModel bvm) { foreach (Xamarin.Forms.View view in grid.Children) { if (view is BinInEditRackView) { BinInEditRackView binview = (BinInEditRackView)view; if (binview.Model == bvm) { return(binview); } } } return(null); }
// GET: Bins/Edit/5 public async Task <IActionResult> Edit(Guid?id) { if (id == null) { return(NotFound()); } var bin = await _context.PartsBin.FindAsync(id); if (bin == null) { return(NotFound()); } BinViewModel binViewModel = new BinViewModel(bin); binViewModel.Racks = await _context.BinRack.ToListAsync(); return(View(binViewModel)); }
//View New Bin public BinPage(ArcGISFeature feature) { InitializeComponent(); BindingContext = viewModel = new BinViewModel(feature); Cancel.IsEnabled = true; Cancel.Text = "Delete"; Save.Text = "Edit"; BinPicFrame.IsVisible = false; SetImage(); GeneralStack.IsEnabled = false; CapcaityStack.IsEnabled = false; //CropYear.ItemsSource = viewModel.DateRange; //SetCropYear(); //CalcVolume(); //ContentStack.IsEnabled = false; }
private void FillBins() { for (int i = 1; i <= model.Levels; i++) { for (int j = 1; j <= model.Sections; j++) { BinViewModel finded = model.BinsViewModel.BinViewModels.Find(x => x.Level == i && x.Section == j); if (finded is BinViewModel) { try { BinView bev = new BinView(finded); grid.Children.Add(bev, finded.Section, finded.Section + finded.SectionSpan, finded.Level, finded.Level + finded.LevelSpan); } catch (Exception exp) { System.Diagnostics.Debug.WriteLine(exp.Message); } } } } }
private void FillBins() { for (int i = 1; i <= model.Levels; i++) { for (int j = 1; j <= model.Sections; j++) { BinViewModel finded = model.BinsViewModel.BinViewModels.Find(x => x.Level == i && x.Section == j); if (finded is BinViewModel) { if (model.CreateMode) { BinView bev = new BinView(finded); grid.Children.Add(bev, finded.Section, finded.Section + finded.SectionSpan, finded.Level, finded.Level + finded.LevelSpan); } else { BinViewInRack bev = new BinViewInRack(finded); grid.Children.Add(bev, finded.Section, finded.Section + finded.SectionSpan, finded.Level, finded.Level + finded.LevelSpan); } } } } }
public async Task <IActionResult> Create([Bind("RackIndexX,RackIndexY,RackIndexZ,Name,Description,SelectedRackID")] BinViewModel binViewModel) { Bin bin = binViewModel.ToBin(); if (ModelState.IsValid) { bin.Rack = await _context.BinRack.FindAsync(binViewModel.SelectedRackID); // Assign to the current user IdentityUser currUser = await _userManager.GetUserAsync(User); if (null != currUser) { bin.OwnerID = currUser.Id; } _context.Add(bin); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(bin)); }
public static PolygonBin MapBinToPolyType(this BinViewModel inViewModel, IBinstance bin) { PolygonBin pbin = new PolygonBin(bin); double d; try { pbin.SideHeight = double.TryParse(inViewModel.SideHeight, out d) ? d : 0.0; } catch (Exception) { pbin.SideHeight = 0; } try { pbin.SideWidth = double.TryParse(inViewModel.SideWidth, out d) ? d : 0; } catch (Exception) { pbin.SideWidth = 0; } try { int i; pbin.NumberOfSides = int.TryParse(inViewModel.NumberOfSides, out i) ? i : 0; } catch (Exception) { pbin.NumberOfSides = 0; } return(pbin); }
private void FillBins() { for (int i = 1; i <= model.Levels; i++) { for (int j = 1; j <= model.Sections; j++) { BinViewModel finded = model.BinsViewModel.BinViewModels.Find(x => x.Level == i && x.Section == j); if (finded is BinViewModel) { BinView bev = new BinView(finded); grid.Children.Add(bev, finded.Section, finded.Section + finded.SectionSpan, finded.Level, finded.Level + finded.LevelSpan); } else { EmptySpaceViewModel esvm = model.BinsViewModel.EmptySpacesViewModels.Find(x => x.Level == i && x.Section == j); if (esvm is EmptySpaceViewModel) { EmptySpaceViewInRack esvir = new EmptySpaceViewInRack(esvm); grid.Children.Add(esvir, esvm.Section, esvm.Level); } } } } }
public static YTYData MapViewModelToYTY(this BinViewModel inViewModel) { YTYData yty = new YTYData(); //yty.Crop = inViewModel.Crop; //yty.CropYear = inViewModel.CropYear; //double d; //yty.GrainHeight = double.TryParse(inViewModel.GrainHeight, out d) ? d : 0; //yty.GrainHopperHeight = double.TryParse(inViewModel.GrainHopperHeight, out d) ? d : 0; //yty.ConeHeight = double.TryParse(inViewModel.GrainConeHeight, out d) ? d : 0; //yty.MoistureOfGrain = double.TryParse(inViewModel.MoisturePercent, out d) ? d : 0; //yty.MoistureFactor = double.TryParse(inViewModel.MoistureFactor, out d) ? d : 0; //yty.TestWeight = double.TryParse(inViewModel.TestWeight, out d) ? d : 0; //yty.PackFactor = double.TryParse(inViewModel.PackFactor, out d) ? d : 0; //yty.DockagePercent = double.TryParse(inViewModel.DockagePercent, out d) ? d : 0; //yty.DockageFactor = double.TryParse(inViewModel.DockageFactor, out d) ? d : 0; //yty.TotalVolume = double.TryParse(inViewModel.GrainVolume, out d) ? d : 0; //switch (inViewModel.ConversionFactor) //{ // case 0: // yty.ConversionFactor = 0.4; // break; // case 1: // yty.ConversionFactor = 0.8; // break; // default: // yty.ConversionFactor = 0; // break; //} //yty.ShellFactor = double.TryParse(inViewModel.ShellFactor, out d) ? d : 0; //yty.TotalDeductionVolume = double.TryParse(inViewModel.TotalDeductionVolume, out d) ? d : 0; //yty.Notes = inViewModel.ContentsNotes; return(yty); }
public BinView(BinViewModel bvm) { model = bvm; BindingContext = model; InitializeComponent(); }
public static async Task <ArcCrudEnum> AddBin(BinViewModel binViewModel) { IBinstance bin = binViewModel.Binstance; IEnumerable <YTYData> yTY = bin.YTYDatas; try { await _featureTable.LoadAsync(); var attributes = new Dictionary <string, object>(); attributes.Add("identifier", bin.Identifier); attributes.Add("created_by", bin.CreatedBy); attributes.Add("modified_by", bin.ModifiedBy); switch (bin.BinType) { case BinTypeEnum.RoundStorage: attributes.Add("bin_type", "round_storage"); break; case BinTypeEnum.GravityWagon: attributes.Add("bin_type", "gravity_wagon"); break; case BinTypeEnum.PolygonStructure: attributes.Add("bin_type", "polygon_structure"); break; case BinTypeEnum.FlatStructure: attributes.Add("bin_type", "flat_structure"); break; } attributes.Add("year_collected", bin.YearCollected); if (bin.IsLeased.HasValue) { attributes.Add("owned_or_leased", bin.IsLeased.Value ? "leased" : "owned"); } if (bin.HasDryingDevice.HasValue) { attributes.Add("drying_device", bin.HasDryingDevice.Value ? "true" : "false"); } if (bin.HasGrainHeightIndicator.HasValue) { attributes.Add("bin_level_indicator_device", bin.HasGrainHeightIndicator.Value ? "true" : "false"); } switch (bin.LadderType) { case Ladder.None: attributes.Add("ladder_type", "none"); break; case Ladder.Ladder: attributes.Add("ladder_type", "ladder"); break; case Ladder.Stairs: attributes.Add("ladder_type", "stairs"); break; } attributes.Add("notes", bin.Notes); //bin type specific logic below Type t = bin.GetType(); if (bin.BinType == BinTypeEnum.FlatStructure) { if (t.Equals(typeof(FlatBin))) { FlatBin flat = (FlatBin)bin; attributes.Add("crib_height", flat.CribLength); attributes.Add("crib_width", flat.CribWidth); } } else if (bin.BinType == BinTypeEnum.GravityWagon) { if (t.Equals(typeof(GravityBin))) { GravityBin gravityBin = (GravityBin)bin; attributes.Add("chute_length", gravityBin.ChuteLength); attributes.Add("hopper_height", gravityBin.HopperHeight); attributes.Add("rectangle_height", gravityBin.RectangleHeight); attributes.Add("rectangle_length", gravityBin.RectangleLength); attributes.Add("rectangle_width", gravityBin.RectangleWidth); } } else if (bin.BinType == BinTypeEnum.PolygonStructure) { if (t.Equals(typeof(PolygonBin))) { PolygonBin polygonBin = (PolygonBin)bin; attributes.Add("side_height", polygonBin.SideHeight); attributes.Add("side_width", polygonBin.SideWidth); attributes.Add("number_of_sides", polygonBin.NumberOfSides); } } else if (bin.BinType == BinTypeEnum.RoundStorage) { if (t.Equals(typeof(RoundBin))) { RoundBin round = (RoundBin)bin; if (round.HasHopper.HasValue) { attributes.Add("has_hopper", round.HasHopper.Value ? "true" : "false"); } attributes.Add("radius", round.Radius); attributes.Add("wall_height", round.WallHeight); attributes.Add("roof_height", round.RoofHeight); attributes.Add("hopper_height", round.HopperHeight); } } MapPoint mp; double lat = 0; double lon = 0; try { var locator = CrossGeolocator.Current; locator.DesiredAccuracy = 1000; var position = await locator.GetPositionAsync(); if (position == null) { Console.WriteLine("Location Service error"); } lat = position.Latitude; lon = position.Longitude; } catch { } string lonS = lon.ToString(); string[] split = lonS.Split('.'); var charArray = split[1].ToCharArray(); //seperate good location, make third if necassary string first = charArray[0].ToString(); string second = charArray[1].ToString(); string third = charArray[2].ToString(); Random random = new Random(); int addition = random.Next(25, 75); string additionS = addition.ToString(); string newLong = split[0] + '.' + first + second + third + additionS; //latitude string latS = lat.ToString(); string[] splitL = latS.Split('.'); var charArrayL = splitL[1].ToCharArray(); //seperate good location, make third if necassary string firstL = charArrayL[0].ToString(); string secondL = charArrayL[1].ToString(); string thirdL = charArrayL[2].ToString(); int additionL = random.Next(25, 75); string additionSL = additionL.ToString(); string newLat = splitL[0] + '.' + firstL + secondL + thirdL + additionSL; double clusteredLongitude = double.Parse(newLong); double clusteredLatitude = double.Parse(newLat); mp = new MapPoint(clusteredLongitude, clusteredLatitude); binViewModel.ArcGISFeature = (ArcGISFeature)_featureTable.CreateFeature(attributes, mp); await _featureTable.AddFeatureAsync(binViewModel.ArcGISFeature); await binViewModel.ArcGISFeature.LoadAsync(); if (DeviceInfo.DeviceType == DeviceType.Physical) { using (var memoryStream = new MemoryStream()) { bin.Image.GetStream().CopyTo(memoryStream); // add an attachment - pass the name, mime type, and attachment data (bytes, etc.) await binViewModel.ArcGISFeature.AddAttachmentAsync("Photo.jpg", "image/jpg", memoryStream.ToArray()); //agsFeature } } if (yTY == null) { yTY = new List <YTYData>(); } //create json string jsonString = JsonConvert.SerializeObject(yTY); byte[] byteArray = Encoding.UTF8.GetBytes(jsonString); List <Attachment> attachmentsToRemove = new List <Attachment>(); IReadOnlyList <Attachment> attachments = await binViewModel.ArcGISFeature.GetAttachmentsAsync(); foreach (Attachment attachment in attachments) { if (attachment.Name.Equals(YTY_FILE_NAME)) { attachmentsToRemove.Add(attachment); } } await binViewModel.ArcGISFeature.DeleteAttachmentsAsync(attachmentsToRemove); await binViewModel.ArcGISFeature.AddAttachmentAsync(YTY_FILE_NAME, "application/json", byteArray); //agsFeature await _featureTable.UpdateFeatureAsync(binViewModel.ArcGISFeature); //agsFeature // push to ArcGIS Online feature service IReadOnlyList <EditResult> editResults = await _featureTable.ApplyEditsAsync(); // check results for errors foreach (var er in editResults) { if (er.CompletedWithErrors) { return(ArcCrudEnum.Failure); } } return(ArcCrudEnum.Success); } catch (ArcGISWebException) { return(ArcCrudEnum.Exception); } }
private void FillBins() { for (int i = 1; i <= model.Levels; i++) { for (int j = 1; j <= model.Sections; j++) { BinViewModel finded = model.BinsViewModel.BinViewModels.Find(x => x.Level == i && x.Section == j); if (finded is BinViewModel) { try { BinInEditRackView exist = BinInEditRackViews.Find(x => x.Section == j && x.Level == i); if (exist is BinInEditRackView) { exist.Update(finded); exist.Marked = true; } else { BinInEditRackView bierv = new BinInEditRackView(finded); bierv.Section = j; bierv.Level = i; bierv.Marked = true; grid.Children.Add(bierv, finded.Section, finded.Section + finded.SectionSpan, finded.Level, finded.Level + finded.LevelSpan); BinInEditRackViews.Add(bierv); } } catch (Exception exp) { System.Diagnostics.Debug.WriteLine(exp.Message); } } else { try { EmptySpaceViewModel esvm = model.BinsViewModel.EmptySpacesViewModels.Find(x => x.Level == i && x.Section == j); if (esvm is EmptySpaceViewModel) { EmptySpaceViewInRack exist = EmptySpaceViewInRacks.Find(x => x.Section == j && x.Level == i); if (exist is EmptySpaceViewInRack) { exist.Marked = true; } else { EmptySpaceViewInRack esvir = new EmptySpaceViewInRack(esvm); esvir.Section = j; esvir.Level = i; esvir.Marked = true; grid.Children.Add(esvir, esvm.Section, esvm.Level); EmptySpaceViewInRacks.Add(esvir); } } } catch (Exception exp) { System.Diagnostics.Debug.WriteLine(exp.Message); } } } } BinInEditRackViews.RemoveAll(x => x.Marked == false); foreach (BinInEditRackView bierv in BinInEditRackViews) { bierv.Marked = false; } EmptySpaceViewInRacks.RemoveAll(x => x.Marked == false); foreach (EmptySpaceViewInRack esvmir in EmptySpaceViewInRacks) { esvmir.Marked = false; } }
public static async Task <ArcCrudEnum> EditBin(BinViewModel binViewModel) { IBinstance bin = binViewModel.Binstance; ArcGISFeature featureToEdit = binViewModel.ArcGISFeature; try { await featureToEdit.LoadAsync(); featureToEdit.Attributes["identifier"] = bin.Identifier; featureToEdit.Attributes["modified_by"] = binViewModel.EmpoyeeNumber; switch (bin.BinType) { case BinTypeEnum.RoundStorage: featureToEdit.Attributes["bin_type"] = "round_storage"; break; case BinTypeEnum.GravityWagon: featureToEdit.Attributes["bin_type"] = "gravity_wagon"; break; case BinTypeEnum.PolygonStructure: featureToEdit.Attributes["bin_type"] = "polygon_structure"; break; case BinTypeEnum.FlatStructure: featureToEdit.Attributes["bin_type"] = "flat_structure"; break; } featureToEdit.Attributes["year_collected"] = bin.YearCollected; if (bin.IsLeased.HasValue) { featureToEdit.Attributes["owned_or_leased"] = bin.IsLeased.Value ? "leased" : "owned"; } if (bin.HasDryingDevice.HasValue) { featureToEdit.Attributes["drying_device"] = bin.HasDryingDevice.Value ? "true" : "false"; } if (bin.HasGrainHeightIndicator.HasValue) { featureToEdit.Attributes["bin_level_indicator_device"] = bin.HasGrainHeightIndicator.Value ? "true" : "false"; } switch (bin.LadderType) { case Ladder.None: featureToEdit.Attributes["ladder_type"] = "none"; break; case Ladder.Ladder: featureToEdit.Attributes["ladder_type"] = "ladder"; break; case Ladder.Stairs: featureToEdit.Attributes["ladder_type"] = "stairs"; break; } featureToEdit.Attributes["notes"] = bin.Notes; double dr; //double.TryParse(bin.BinVolume, out dr); //featureToEdit.Attributes["bin_volume"] = dr; //bin type specific logic below Type t = bin.GetType(); if (bin.BinType == BinTypeEnum.FlatStructure) { if (t.Equals(typeof(FlatBin))) { FlatBin flat = (FlatBin)bin; featureToEdit.Attributes["crib_height"] = flat.CribLength; featureToEdit.Attributes["crib_width"] = flat.CribWidth; } } else if (bin.BinType == BinTypeEnum.GravityWagon) { if (t.Equals(typeof(GravityBin))) { GravityBin gravityBin = (GravityBin)bin; featureToEdit.Attributes["chute_length"] = gravityBin.ChuteLength; featureToEdit.Attributes["hopper_height"] = gravityBin.HopperHeight; featureToEdit.Attributes["rectangle_height"] = gravityBin.RectangleHeight; featureToEdit.Attributes["rectangle_length"] = gravityBin.RectangleLength; featureToEdit.Attributes["rectangle_width"] = gravityBin.RectangleWidth; } } else if (bin.BinType == BinTypeEnum.PolygonStructure) { if (t.Equals(typeof(PolygonBin))) { PolygonBin polygonBin = (PolygonBin)bin; featureToEdit.Attributes["side_height"] = polygonBin.SideHeight; featureToEdit.Attributes["side_width"] = polygonBin.SideWidth; featureToEdit.Attributes["number_of_sides"] = polygonBin.NumberOfSides; } } else if (bin.BinType == BinTypeEnum.RoundStorage) { if (t.Equals(typeof(PolygonBin))) { RoundBin round = (RoundBin)bin; if (round.HasHopper.HasValue) { featureToEdit.Attributes["has_hopper"] = round.HasHopper.Value ? "true" : "false"; } featureToEdit.Attributes["radius"] = round.Radius; featureToEdit.Attributes["wall_height"] = round.WallHeight; featureToEdit.Attributes["roof_height"] = round.RoofHeight; featureToEdit.Attributes["hopper_height"] = round.HopperHeight; } } // can't be null if (binViewModel.Binstance.YTYDatas == null) { binViewModel.Binstance.YTYDatas = new List <YTYData>(); } //use data in _binViewModel System.Diagnostics.Debug.Print("Feature can edit attachments" + (featureToEdit.CanEditAttachments ? "Yes" : "No")); //-------- Formatting -------- //create json string jsonString = JsonConvert.SerializeObject(binViewModel.Binstance.YTYDatas); //System.Diagnostics.Debug.Print(jsonString); //System.Diagnostics.Debug.Print(((Binstance)(binViewModel.Binstance)).YTYDatasString()); // convert json to byte array byte[] byteArray = Encoding.UTF8.GetBytes(jsonString); //-------- ARC Connection -------- //remove old YTYData List <Attachment> attachmentsToRemove = new List <Attachment>(); IReadOnlyList <Attachment> attachments = await featureToEdit.GetAttachmentsAsync(); foreach (Attachment attachment in attachments) { System.Diagnostics.Debug.Print(attachment.Name); if (attachment.Name.Equals(YTY_FILE_NAME)) { System.Diagnostics.Debug.Print("Found YTY attachment"); attachmentsToRemove.Add(attachment); } } System.Diagnostics.Debug.Print("Attachments to remove:"); foreach (Attachment attachment in attachments) { System.Diagnostics.Debug.Print(attachment.Name); } if (attachmentsToRemove.Any()) { //update the json file await featureToEdit.UpdateAttachmentAsync(attachmentsToRemove.First(), YTY_FILE_NAME, "application/json", byteArray); } _featureTable = (ServiceFeatureTable)featureToEdit.FeatureTable; // update feature after attachment added await _featureTable.UpdateFeatureAsync(featureToEdit); //agsFeature System.Diagnostics.Debug.Print("Feature table updated"); // push to ArcGIS Online feature service IReadOnlyList <EditResult> editResults = await _featureTable.ApplyEditsAsync(); System.Diagnostics.Debug.Print("Arc updated"); foreach (var er in editResults) { if (er.CompletedWithErrors) { // handle error (er.Error.Message) return(ArcCrudEnum.Failure); } } return(ArcCrudEnum.Success); } catch (ArcGISWebException) { return(ArcCrudEnum.Exception); } }
public BinInNewRackView(BinViewModel bvm) { Model = bvm; BindingContext = Model; InitializeComponent(); }
public ActionResult BinList_Update([DataSourceRequest] DataSourceRequest request, BinViewModel product) { return(Json("")); }
public static IBinstance MapToBin(this BinViewModel inViewModel) { IBinstance bin = new Binstance(); if (inViewModel.Binstance.Image != null) { bin.Image = inViewModel.Binstance.Image; } if (inViewModel.New) { bin.CreatedBy = inViewModel.EmpoyeeNumber; } else if (inViewModel.Edit) { bin.ModifiedBy = inViewModel.EmpoyeeNumber; } else { bin.CreatedBy = inViewModel.CreatedBy; bin.ModifiedBy = inViewModel.ModifiedBy; } bin.Identifier = inViewModel.Identifier; bin.YearCollected = inViewModel.YearCollected; switch (inViewModel.Owned) { case 0: bin.IsLeased = false; break; case 1: bin.IsLeased = true; break; default: bin.IsLeased = null; break; } switch (inViewModel.HasDryingDevice) { case 0: bin.HasDryingDevice = true; break; case 1: bin.HasDryingDevice = false; break; default: bin.HasDryingDevice = null; break; } switch (inViewModel.HasGrainHeightIndicator) { case 0: bin.HasGrainHeightIndicator = true; break; case 1: bin.HasGrainHeightIndicator = false; break; default: bin.HasGrainHeightIndicator = null; break; } switch (inViewModel.LadderType) { case 0: bin.LadderType = Enums.Ladder.None; break; case 1: bin.LadderType = Enums.Ladder.Stairs; break; case 2: bin.LadderType = Enums.Ladder.Stairs; break; } bin.Notes = inViewModel.Notes; switch (inViewModel.BinType) { case 0: bin.BinType = Enums.BinTypeEnum.FlatStructure; break; case 1: bin.BinType = Enums.BinTypeEnum.GravityWagon; break; case 2: bin.BinType = Enums.BinTypeEnum.PolygonStructure; break; case 3: bin.BinType = Enums.BinTypeEnum.RoundStorage; break; default: bin.BinType = Enums.BinTypeEnum.NotFound; break; } return(bin); }
public static void MapBinstanceToViewModel(this BinViewModel inViewModel) { IBinstance oldBin = inViewModel.Binstance; inViewModel.Identifier = oldBin.Identifier; switch (oldBin.BinType) { case Enums.BinTypeEnum.FlatStructure: inViewModel.BinType = 0; inViewModel.FlatBinstanceToViewModel(); break; case Enums.BinTypeEnum.GravityWagon: inViewModel.BinType = 1; inViewModel.GravityBinstanceToViewModel(); break; case Enums.BinTypeEnum.PolygonStructure: inViewModel.BinType = 2; inViewModel.PolyBinstanceToViewModel(); break; case Enums.BinTypeEnum.RoundStorage: inViewModel.BinType = 3; inViewModel.RoundBinstanceToViewModel(); break; case Enums.BinTypeEnum.NotFound: inViewModel.BinType = -1; break; } switch (oldBin.IsLeased) { case true: inViewModel.Owned = 0; break; case false: inViewModel.Owned = 1; break; case null: inViewModel.Owned = -1; break; } switch (oldBin.HasDryingDevice) { case true: inViewModel.HasDryingDevice = 0; break; case false: inViewModel.HasDryingDevice = 1; break; case null: inViewModel.HasDryingDevice = -1; break; } switch (oldBin.HasGrainHeightIndicator) { case true: inViewModel.HasGrainHeightIndicator = 0; break; case false: inViewModel.HasGrainHeightIndicator = 1; break; case null: inViewModel.HasGrainHeightIndicator = -1; break; } switch (oldBin.LadderType) { case Enums.Ladder.None: inViewModel.LadderType = 0; break; case Enums.Ladder.Stairs: inViewModel.LadderType = 1; break; case Enums.Ladder.Ladder: inViewModel.LadderType = 2; break; default: inViewModel.LadderType = -1; break; } inViewModel.Notes = oldBin.Notes; }
public static RoundBin MapBinToRoundType(this BinViewModel inViewModel, IBinstance bin) { RoundBin rbin = new RoundBin(bin); try { switch (inViewModel.HasHopper) { case 0: rbin.HasHopper = true; break; case 1: rbin.HasHopper = false; break; default: rbin.HasHopper = null; break; } } catch (Exception) { rbin.HasHopper = null; } double d; try { rbin.Radius = double.TryParse(inViewModel.Radius, out d) ? d : 0.0; rbin.Circumference = rbin.Radius * 2 * Math.PI; } catch (Exception) { rbin.Radius = 0; rbin.Circumference = 0; } try { rbin.WallHeight = double.TryParse(inViewModel.WallHeight, out d) ? d : 0; } catch (Exception) { rbin.WallHeight = 0; } try { rbin.RoofHeight = double.TryParse(inViewModel.RoofHeight, out d) ? d : 0; } catch (Exception) { rbin.RoofHeight = 0; } try { rbin.HopperHeight = double.TryParse(inViewModel.HopperHeight, out d) ? d : 0; } catch (Exception) { rbin.HopperHeight = 0; } return(rbin); }