Beispiel #1
0
        private void RenderListItem(XhtmlMobileTextWriter writer, MobileListItem item)
        {
            String accessKey = GetCustomAttributeValue(item, XhtmlConstants.AccessKeyCustomAttribute);
            String cssClass  = GetCustomAttributeValue(item, XhtmlConstants.CssClassCustomAttribute);

            if (Control.ItemsAsLinks)
            {
                RenderBeginLink(writer, item.Value, accessKey, Style, cssClass);
                writer.WriteEncodedText(item.Text);
                RenderEndLink(writer);
            }
            else if (Control.HasItemCommandHandler)
            {
                RenderPostBackEventAsAnchor(writer,
                                            item.Index.ToString(CultureInfo.InvariantCulture) /*event argument*/,
                                            item.Text /*link text*/,
                                            accessKey,
                                            Style,
                                            cssClass);
            }
            else
            {
                writer.WriteEncodedText(item.Text);
            }
        }
Beispiel #2
0
        public Task <BaseResponse> Put(int id, [FromBody] MobileViewModel model)
        {
            MobileListItem updateModel = new MobileListItem
            {
                Brand            = model.Brand,
                CPU              = model.CPU,
                InternalMemory   = model.InternalMemory,
                Name             = model.Name,
                OS               = model.OS,
                Price            = model.Price,
                RAM              = model.RAM,
                ScreenResolution = model.ScreenResolution,
                ScreenSize       = model.ScreenSize,
                Size             = model.Size,
                VideoUrl         = model.VideoUrl,
                Weight           = model.Weight
            };

            foreach (var item in model.Photos)
            {
                Domain.DTO.ServiceModels.Photo photo = new Domain.DTO.ServiceModels.Photo
                {
                    Base64  = item.Base64,
                    PhotoId = item.PhotoId
                };
                updateModel.Photos.Add(photo);
            }

            return(_mobileService.UpdateMobile(updateModel));
        }
            /// <summary>
            /// </summary>
            internal ItemTreeNode(MobileListItem runtimeItem) : base(runtimeItem.Text)
            {
                Debug.Assert(runtimeItem != null, "runtimeItem is null");

                _valueSet         = true;
                this._runtimeItem = runtimeItem;
                this._value       = _runtimeItem.Value;
                this._selected    = _runtimeItem.Selected;
            }
Beispiel #4
0
        private void RenderListBody(XhtmlMobileTextWriter writer, String itemPrefix, String itemSuffix)
        {
            int pageStart = Control.FirstVisibleItemIndex;
            int pageSize  = Control.VisibleItemCount;

            for (int i = 0; i < pageSize; i++)
            {
                MobileListItem item = Control.Items[pageStart + i];
                writer.Write(itemPrefix);
                RenderListItem(writer, item);
                writer.WriteLine(itemSuffix);
            }
        }
Beispiel #5
0
        /// <include file='doc\WmlListAdapter.uex' path='docs/doc[@for="WmlListAdapter.Render"]/*' />
        public override void Render(WmlMobileTextWriter writer)
        {
            if (Control.HasControls())
            {
                writer.BeginCustomMarkup();
                RenderChildren(writer);
                writer.EndCustomMarkup();
                return;
            }

            int pageStart = Control.FirstVisibleItemIndex;
            int pageSize  = Control.VisibleItemCount;

            if (pageSize == 0)
            {
                return;
            }

            MobileListItemCollection items = Control.Items;

            if (items.Count == 0)
            {
                return;
            }

            bool itemsAsLinks  = Control.ItemsAsLinks;
            bool hasCmdHandler = Control.HasItemCommandHandler;

            writer.EnterStyle(Style);
            for (int i = 0; i < pageSize; i++)
            {
                MobileListItem item = items[pageStart + i];

                if (itemsAsLinks)
                {
                    RenderLink(writer, item.Value, null, false, false, item.Text, true);
                }
                else if (hasCmdHandler)
                {
                    RenderPostBackEvent(writer, item.Index.ToString(CultureInfo.InvariantCulture), null, true, item.Text, true);
                }
                else
                {
                    writer.RenderText(item.Text, true);
                }
            }
            writer.ExitStyle(Style);
        }
        void RenderSelectElement(XhtmlMobileTextWriter writer)
        {
            if ((String)Device["supportsSelectFollowingTable"] == "false" && writer.CachedEndTag == "table")
            {
                writer.Write("&nbsp;");
            }

            ConditionalEnterStyle(writer, Style);
            writer.WriteBeginTag("select");

            if (Control.SelectType == ListSelectType.MultiSelectListBox)
            {
                writer.WriteAttribute("multiple", "multiple");
            }

            if (Control.SelectType == ListSelectType.ListBox || Control.SelectType == ListSelectType.MultiSelectListBox)
            {
                writer.WriteAttribute("size", Control.Rows.ToString(CultureInfo.InvariantCulture));
            }

            writer.WriteAttribute("name", Control.UniqueID);
            ConditionalRenderClassAttribute(writer);
            writer.Write(">");

            for (int itemIndex = 0; itemIndex < Control.Items.Count; itemIndex++)
            {
                MobileListItem item = Control.Items[itemIndex];
                writer.WriteBeginTag("option");
                WriteItemValueAttribute(writer, itemIndex, item.Value);
                if (item.Selected && (Control.IsMultiSelect || itemIndex == Control.SelectedIndex))
                {
                    writer.Write(" selected=\"selected\">");
                }
                else
                {
                    writer.Write(">");
                }
                writer.WriteEncodedText(item.Text);
                writer.WriteLine("</option>");
            }
            ConditionalSetPendingBreak(writer);
            writer.WriteEndTag("select");
            writer.WriteLine();
            ConditionalPopPhysicalCssClass(writer);
            ConditionalExitStyle(writer, Style);
        }
Beispiel #7
0
        public async Task <BaseResponse> GetMobile(int id)
        {
            BaseResponse <MobileListItem> response = null;

            try
            {
                var item = await(_mobilieRepository as MobileRepository).FindBy(m => m.Id == id)
                           .Include(m => m.Photos).SingleOrDefaultAsync();

                var responseItem = new MobileListItem
                {
                    Brand            = item.Brand,
                    CPU              = item.CPU,
                    InternalMemory   = item.InternalMemory,
                    MobileId         = item.Id,
                    Name             = item.Name,
                    OS               = item.OS,
                    Price            = item.Price,
                    RAM              = item.RAM,
                    ScreenResolution = item.ScreenResolution,
                    ScreenSize       = item.ScreenSize,
                    Size             = item.Size,
                    VideoUrl         = item.VideoUrl,
                    Weight           = item.Weight,
                    Photos           = (item.Photos as List <Domain.DAO.Entities.Photo>).Select(x => new Domain.DTO.ServiceModels.Photo()
                    {
                        Base64 = x.Value, PhotoId = x.Id
                    }).ToList()
                };

                response = BaseResponse.Ok(responseItem);
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message);
                response = BaseResponse.Fail <MobileListItem>(new Error()
                {
                    Code = ErrorCode.Internal, ErrorMessage = "Could not find product"
                });
            }

            return(response);
        }
	public void Add(MobileListItem item) {}
 public ListCommandEventArgs(MobileListItem item, object commandSource)
 {
 }
 // Constructors
 public ListCommandEventArgs(MobileListItem item, object commandSource, System.Web.UI.WebControls.CommandEventArgs originalArgs)
 {
 }
        /// <include file='doc\HtmlSelectionListAdapter.uex' path='docs/doc[@for="HtmlSelectionListAdapter.Render"]/*' />
        public override void Render(HtmlMobileTextWriter writer)
        {
            MobileListItemCollection items      = Control.Items;
            ListSelectType           selectType = Control.SelectType;

            if (items.Count == 0 &&
                selectType != ListSelectType.ListBox &&
                selectType != ListSelectType.MultiSelectListBox)
            {
                return;
            }

            int    selectedIndex = Control.SelectedIndex;
            String renderName;

            if (Device.RequiresAttributeColonSubstitution)
            {
                renderName = Control.UniqueID.Replace(':', ',');
            }
            else
            {
                renderName = Control.UniqueID;
            }

            switch (selectType)
            {
            case ListSelectType.DropDown:
            case ListSelectType.ListBox:
            case ListSelectType.MultiSelectListBox:

                if (items.Count == 0 && !Device.CanRenderEmptySelects)
                {
                    break;
                }

                writer.EnterLayout(Style);
                writer.WriteBeginTag("select");

                if (selectType == ListSelectType.MultiSelectListBox)
                {
                    writer.Write(" multiple");
                }

                if (selectType == ListSelectType.ListBox || selectType == ListSelectType.MultiSelectListBox)
                {
                    writer.WriteAttribute("size", Control.Rows.ToString(CultureInfo.InvariantCulture));
                }

                writer.WriteAttribute("name", renderName);
                writer.Write(">");

                for (int itemIndex = 0; itemIndex < items.Count; itemIndex++)
                {
                    MobileListItem item = items[itemIndex];
                    writer.WriteBeginTag("option");
                    WriteItemValueAttribute(writer, itemIndex, item.Value);
                    if (item.Selected && (Control.IsMultiSelect || itemIndex == selectedIndex))
                    {
                        writer.Write(" selected>");
                    }
                    else
                    {
                        writer.Write(">");
                    }
                    writer.WriteEncodedText(item.Text);
                    writer.WriteLine("");
                }
                writer.Write("</select>");

                if (Device.HidesRightAlignedMultiselectScrollbars &&
                    selectType == ListSelectType.MultiSelectListBox)
                {
                    // nested if for perf
                    if ((Alignment)Style[Style.AlignmentKey, true] == Alignment.Right)
                    {
                        writer.Write("&nbsp;&nbsp;&nbsp;&nbsp;");
                    }
                }
                writer.WriteLine("");

                if (!Page.DesignMode)
                {
                    writer.ExitLayout(Style, Control.BreakAfter);
                }
                else
                {
                    writer.ExitLayout(Style, false);
                }
                break;

            case ListSelectType.Radio:
            case ListSelectType.CheckBox:

                String selectTypeString =
                    (selectType == ListSelectType.Radio) ?
                    "radio" :
                    "checkbox";
                Alignment alignment = (Alignment)Style[Style.AlignmentKey, true];
                if (!Device.Tables || alignment == Alignment.Left || alignment == Alignment.NotSet)
                {
                    writer.EnterStyle(Style);
                    bool breakAfter = false;
                    for (int itemIndex = 0; itemIndex < items.Count; itemIndex++)
                    {
                        if (breakAfter)
                        {
                            writer.WriteBreak();
                        }
                        MobileListItem item = items[itemIndex];

                        writer.WriteBeginTag("input");
                        writer.WriteAttribute("type", selectTypeString);
                        writer.WriteAttribute("name", renderName);
                        WriteItemValueAttribute(writer, itemIndex, item.Value);
                        if (item.Selected &&
                            (Control.IsMultiSelect || itemIndex == selectedIndex) &&
                            Device.SupportsUncheck)
                        {
                            writer.Write(" checked>");
                        }
                        else
                        {
                            writer.Write(">");
                        }
                        writer.WriteEncodedText(item.Text);
                        breakAfter = true;
                    }
                    writer.ExitStyle(Style, Control.BreakAfter);
                }
                else     // Device supports tables and alignment is non default.
                {
                    Wrapping wrapping = (Wrapping)Style[Style.WrappingKey, true];
                    bool     nowrap   = (wrapping == Wrapping.NoWrap);

                    writer.EnterLayout(Style);
                    writer.WriteFullBeginTag("table");
                    writer.BeginStyleContext();
                    for (int itemIndex = 0; itemIndex < items.Count; itemIndex++)
                    {
                        MobileListItem item = items[itemIndex];
                        writer.WriteFullBeginTag("tr");
                        writer.WriteBeginTag("td");
                        if (nowrap)
                        {
                            writer.WriteAttribute("nowrap", "true");
                        }
                        writer.Write(">");

                        writer.WriteBeginTag("input");
                        writer.WriteAttribute("type", selectTypeString);
                        writer.WriteAttribute("name", renderName);
                        WriteItemValueAttribute(writer, itemIndex, item.Value);
                        if (item.Selected &&
                            (Control.IsMultiSelect || itemIndex == selectedIndex) &&
                            Device.SupportsUncheck)
                        {
                            writer.Write(" checked>");
                        }
                        else
                        {
                            writer.Write(">");
                        }

                        writer.MarkStyleContext();
                        writer.EnterFormat(Style);
                        writer.WriteEncodedText(item.Text);
                        writer.ExitFormat(Style);
                        writer.UnMarkStyleContext();
                        writer.WriteEndTag("td");
                        writer.WriteEndTag("tr");
                    }
                    writer.WriteEndTag("table");
                    writer.EndStyleContext();
                    writer.ExitFormat(Style, Control.BreakAfter);
                }
                break;
            }
        }
Beispiel #12
0
        public async Task <BaseResponse> UpdateMobile(MobileListItem model)
        {
            BaseResponse response = null;

            try
            {
                var repo = (_mobilieRepository as MobileRepository);
                response = BaseResponse.Ok();

                var existingMobile = repo.FindBy(m => m.Id == model.MobileId)
                                     .Include(p => p.Photos)
                                     .SingleOrDefault();


                if (existingMobile != null)
                {
                    var mobile = new Mobile
                    {
                        Id               = model.MobileId,
                        Brand            = model.Brand,
                        CPU              = model.CPU,
                        InternalMemory   = model.InternalMemory,
                        Name             = model.Name,
                        OS               = model.OS,
                        Price            = model.Price,
                        RAM              = model.RAM,
                        ScreenResolution = model.ScreenResolution,
                        ScreenSize       = model.ScreenSize,
                        Size             = model.Size,
                        VideoUrl         = model.VideoUrl,
                        Weight           = model.Weight
                    };

                    repo.Context.Entry(existingMobile).CurrentValues.SetValues(mobile);

                    foreach (var existingPhoto in existingMobile.Photos.ToList())
                    {
                        if (model.Photos.Any(p => p.PhotoId == existingPhoto.Id))
                        {
                            repo.Context.Photos.Remove(existingPhoto);
                        }
                    }

                    foreach (var photo in model.Photos)
                    {
                        var existingPhoto = existingMobile.Photos
                                            .Where(p => p.Id == photo.PhotoId)
                                            .SingleOrDefault();

                        if (existingPhoto != null)
                        {
                            repo.Context.Entry(existingPhoto).CurrentValues.SetValues(photo);
                        }
                        else
                        {
                            var newPhoto = new Domain.DAO.Entities.Photo
                            {
                                Value = photo.Base64
                            };

                            existingMobile.Photos.Add(newPhoto);
                        }
                    }

                    repo.Context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                response = BaseResponse.Fail($"Could not update item");
            }

            return(response);
        }
 public void Remove(MobileListItem item)
 {
 }
 public int IndexOf(MobileListItem item)
 {
 }
 public void Add(MobileListItem item)
 {
 }
	// Constructors
	public ListCommandEventArgs(MobileListItem item, object commandSource, System.Web.UI.WebControls.CommandEventArgs originalArgs) {}
	public ListCommandEventArgs(MobileListItem item, object commandSource) {}
	// Constructors
	public ListDataBindEventArgs(MobileListItem item, object dataItem) {}
	public bool Contains(MobileListItem item) {}
 public bool Contains(MobileListItem item)
 {
 }
	public int IndexOf(MobileListItem item) {}
 public void Insert(int index, MobileListItem item)
 {
 }
	public void Insert(int index, MobileListItem item) {}
Beispiel #24
0
 // Constructors
 public ListDataBindEventArgs(MobileListItem item, object dataItem)
 {
 }
	public void Remove(MobileListItem item) {}
Beispiel #26
0
        /// <include file='doc\HtmlListAdapter.uex' path='docs/doc[@for="HtmlListAdapter.RenderList"]/*' />
        protected virtual void RenderList(HtmlMobileTextWriter writer)
        {
            MobileListItemCollection items = Control.Items;
            Wrapping wrap = Style.Wrapping; // used for tables, no decoration case.

            if (items.Count == 0)
            {
                return;
            }

            int pageStart = Control.FirstVisibleItemIndex;
            int pageSize  = Control.VisibleItemCount;

            // Determine what markup to use.

            String         listSuffix, itemPrefix, itemSuffix;
            ListDecoration decoration  = Control.Decoration;
            bool           insideStyle = true;

            // We know that for table tag, outer style doesn't carry over
            // into inside tags so style state needs to be reset.
            // For other cases, we enter the style here once and exit at the
            // end once.
            if (decoration != ListDecoration.None || !Device.Tables)
            {
                writer.EnterStyle(Style);
                insideStyle = false;
            }

            switch (decoration)
            {
            case ListDecoration.Bulleted:
                writer.WriteLine("<ul>");
                listSuffix = "</ul>";
                itemPrefix = "<li>";
                itemSuffix = "</li>";

                if (!Device.RendersBreaksAfterHtmlLists)
                {
                    listSuffix += "<br>";
                }
                break;

            case ListDecoration.Numbered:
                if (pageStart == 0)
                {
                    writer.WriteLine("<ol>");
                }
                else
                {
                    writer.Write("<ol start=\"");
                    writer.Write(pageStart + 1);
                    writer.WriteLine("\">");
                }
                listSuffix = "</ol>";
                itemPrefix = "<li>";
                itemSuffix = "</li>";

                if (!Device.RendersBreaksAfterHtmlLists)
                {
                    listSuffix += "<br>";
                }
                break;

            default:
                if (Device.Tables)
                {
                    listSuffix     = "</table>";
                    Style.Wrapping = Wrapping.NotSet;
                    writer.EnterLayout(Style);
                    writer.WriteLine("<table>");
                    if (wrap == Wrapping.NoWrap)
                    {
                        itemPrefix = "<tr nowrap><td>";
                    }
                    else
                    {
                        itemPrefix = "<tr><td>";
                    }
                    itemSuffix = "</td></tr>";
                }
                else
                {
                    listSuffix = String.Empty;
                    itemPrefix = String.Empty;
                    itemSuffix = "<br>";
                }
                break;
            }

            bool hasCmdHandler = Control.HasItemCommandHandler;

            for (int i = 0; i < pageSize; i++)
            {
                MobileListItem item = items[pageStart + i];
                writer.Write(itemPrefix);

                if (insideStyle)
                {
                    writer.BeginStyleContext();
                    writer.EnterFormat(Style);
                }

                if (Control.ItemsAsLinks)
                {
                    RenderBeginLink(writer, item.Value);
                }
                else if (hasCmdHandler)
                {
                    writer.WriteBeginTag("a");
                    RenderPostBackEventAsAttribute(writer, "href", item.Index.ToString(CultureInfo.InvariantCulture));
                    writer.Write(">");
                }
                writer.WriteEncodedText(item.Text);

                if (hasCmdHandler || Control.ItemsAsLinks)
                {
                    RenderEndLink(writer);
                }

                if (insideStyle)
                {
                    writer.ExitFormat(Style);
                    writer.EndStyleContext();
                }
                writer.WriteLine(itemSuffix);
            }

            if (listSuffix == null || listSuffix.Length > 0)
            {
                writer.WriteLine(listSuffix);
            }

            if (decoration != ListDecoration.None || !Device.Tables)
            {
                writer.ExitStyle(Style);
            }
            else
            {
                writer.ExitLayout(Style);
                Style.Wrapping = wrap;
            }
        }
	public void SetAll(MobileListItem[] value) {}
 /// <summary>
 /// </summary>
 internal ItemTreeNode(String itemText) : base(itemText)
 {
     this._runtimeItem = new MobileListItem();
     this._value       = null;
     this._selected    = false;
 }
        void RenderInputElementSet(XhtmlMobileTextWriter writer)
        {
            string wrappingTag = Device.Tables ? "table" :
                                 (((string)Device["usePOverDiv"] == "true") ? "p" : "div");
            ListSelectType           selectType = Control.SelectType;
            MobileListItemCollection items      = Control.Items;
            // Review: We always render a table.  Should we optimize away the table tags when the alignment is left?
            String selectTypeString =
                (selectType == ListSelectType.Radio) ?
                "radio" :
                "checkbox";

            ClearPendingBreakIfDeviceBreaksOnBlockLevel(writer); // Since we are writing a block-level element in all cases.
            ConditionalEnterLayout(writer, Style);
            RenderOpeningListTag(writer, wrappingTag);
            for (int itemIndex = 0; itemIndex < items.Count; itemIndex++)
            {
                MobileListItem item = items[itemIndex];
                if (Device.Tables)
                {
                    writer.WriteFullBeginTag("tr");
                    writer.WriteFullBeginTag("td");
                }

                writer.WriteBeginTag("input");
                writer.WriteAttribute("type", selectTypeString);
                writer.WriteAttribute("name", Control.UniqueID);
                WriteItemValueAttribute(writer, itemIndex, item.Value);
                String accessKey = GetCustomAttributeValue(item, XhtmlConstants.AccessKeyCustomAttribute);
                if (accessKey != null && accessKey.Length > 0)
                {
                    writer.WriteAttribute("accesskey", accessKey, true);
                }
                // Assumption: Device.SupportsUncheck is always true for Xhtml devices.
                if (item.Selected &&
                    (Control.IsMultiSelect || itemIndex == Control.SelectedIndex))
                {
                    writer.Write(" checked=\"checked\"/>");
                }
                else
                {
                    writer.Write("/>");
                }

                writer.WriteEncodedText(item.Text);
                if (Device.Tables)
                {
                    writer.WriteEndTag("td");
                }
                if ((string)Device["usePOverDiv"] == "true" || !Device.Tables)
                {
                    writer.Write("<br/>");
                }
                if (Device.Tables)
                {
                    writer.WriteEndTag("tr");
                }
            }
            RenderClosingListTag(writer, wrappingTag);
            ConditionalExitLayout(writer, Style);
        }