Пример #1
0
    protected void RegionListView_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        ListViewItem dataItem = e.Item as ListViewItem;
        var controller = new NorthwindManager();

        try
        {
            string regionDescription = String.Empty;
            Region region = null;
            switch (e.CommandName)
            {
                case "Cancel":
                    RegionListView.EditIndex = -1;
                    RegionListView.InsertItemPosition = InsertItemPosition.FirstItem;
                    break;
                case "Delete":
                    break;
                case "Select":
                    break;
                case "Edit":
                    RegionListView.EditIndex = dataItem.DataItemIndex;
                    RegionListView.InsertItemPosition = InsertItemPosition.None;
                    break;
                case "Insert":
                    #region Insert Region and Territories
                    regionDescription = (dataItem.FindControl("RegionDescription") as TextBox).Text.Trim();
                    string territoryDescriptions = (dataItem.FindControl("TerritoryDescriptions") as TextBox).Text;
                    region = new Region() { RegionDescription = regionDescription, Territories = new List<Territory>() };
                    var territories = territoryDescriptions.Split(',');
                    foreach (var territory in territories)
                    {
                        region.Territories.Add(new Territory() { TerritoryDescription = territory.Trim() });
                    }
                    int regionId = controller.Add(region);
                    MessageLabel.Text = "New region added (id: " + regionId + ").";
                    #endregion

                    RegionListView.EditIndex = -1;
                    break;
                case "Update":
                    region = new Region()
                    {
                        RegionID = int.Parse((dataItem.FindControl("RegionID") as HiddenField).Value),
                        RegionDescription = (dataItem.FindControl("RegionDescription") as TextBox).Text.Trim()
                    };
                    Repeater territoryRepeater = dataItem.FindControl("TerritoryRepeater") as Repeater;
                    var territoryList = new List<Territory>();
                    foreach (RepeaterItem item in territoryRepeater.Items)
                    {
                        territoryList.Add(new Territory()
                        {
                            TerritoryID = (item.FindControl("TerritoryID") as HiddenField).Value,
                            TerritoryDescription = (item.FindControl("TerritoryDescription") as TextBox).Text.Trim(),
                            RegionID = region.RegionID,
                            Region = region
                        });
                    }
                    controller.Update(region, territoryList);

                    MessageLabel.Text = "Region updated.";

                    RegionListView.EditIndex = -1;
                    RegionListView.InsertItemPosition = InsertItemPosition.FirstItem;
                    break;
                default:
                    break;
            }
        }
        catch (DbEntityValidationException ex)
        {
            MessageLabel.Text = "The following validation errors occured:<blockquote>";
            foreach (var validationErrors in ex.EntityValidationErrors)
            {
                foreach (var validationError in validationErrors.ValidationErrors)
                {
                    MessageLabel.Text += string.Format("<div>Property: {0} Error: {1}</div>", validationError.PropertyName, validationError.ErrorMessage);
                }
            }
            MessageLabel.Text += "</blockquote>";
        }
        catch (Exception ex)
        {
            MessageLabel.Text = ex.InnermostMessage();
        }

        PopulateRegions();
        e.Handled = true;
    }
Пример #2
0
 private void PopulateRegions()
 {
     try
     {
         var controller = new NorthwindManager();
         var data = controller.GetRegions();
         RegionListView.DataSource = data;
         RegionListView.DataBind();
     }
     catch (Exception ex)
     {
         MessageLabel.Text = ex.Message;
     }
 }