+1-888-365-2779
Try Now
More in this section

Forums / Developing with Sitefinity / Updating the Lstring UrlName field.

Updating the Lstring UrlName field.

3 posts, 0 answered
  1. Santhosh
    Santhosh avatar
    4 posts
    Registered:
    21 Apr 2012
    30 May 2012
    Link to this post
    Hi, I have a custom module  and i am trying to add items to this module programatically.

    1) Which are the mandatory fields that i need to fill ?
    2) How do i update the Lstring field ie. the UrlName field.

    Here is the sample code which i am using please corret me. and i am getting error when i update the field as "System.InvalidOperationException: Unsupported language "en". If you want to support this language, please configure your application accordingly."

    Code :
     public string AddOrUpdateOffice(string xmlFullPath)
            {
                Office objOffice = DeserializeOfficeFromXML(xmlFullPath);
     
                OfficesManager objOfficeManager = new OfficesManager();
                objOfficeManager.Provider.SuppressSecurityChecks = true;
                
                string urlname;
     
                OfficeItem objOfficeItem = objOfficeManager.GetOffices().Where(x => x.Code == objOffice.Code).FirstOrDefault();
                if (objOfficeItem == null)
                {
                    OfficeItem objNewOfficeItem = objOfficeManager.CreateOffice(new Guid());
                    objNewOfficeItem.Code = objOffice.Code;
                    objNewOfficeItem.ApplicationName = objOffice.Name;
                    objNewOfficeItem.Email = objOffice.Email;
                    
                    objNewOfficeItem.Fax = objOffice.Fax;
                    objNewOfficeItem.StreetAddress = objOffice.Address;
                    objNewOfficeItem.PostalCode = objOffice.Postcode;
                    objNewOfficeItem.PostOffice = objOffice.PostOffice;
                    objNewOfficeItem.BusinessHours = objOffice.Businesshours;
                    objNewOfficeItem.Latitude = Convert.ToString(objOffice.X);
                    objNewOfficeItem.Longitude = Convert.ToString(objOffice.Y);
                    objNewOfficeItem.BusinessProperties = Convert.ToString(objOffice.BusinessProperties);
                    objNewOfficeItem.OpenPositions = Convert.ToString(objOffice.OpenPositions);
                    objNewOfficeItem.AdministrationOffice = Convert.ToString(objOffice.AdministrationOffice);
                    objNewOfficeItem.RentalOffice = Convert.ToString(objOffice.RentalOffice);
                    objNewOfficeItem.Company = objOffice.Company;
                    // Mandatory fields
                    objNewOfficeItem.UIStatus = Telerik.Sitefinity.GenericContent.Model.ContentUIStatus.Published;                
                    objNewOfficeItem.PublicationDate = DateTime.UtcNow;
                    objNewOfficeItem.DateCreated = DateTime.Now;
                    objNewOfficeItem.LastModified = DateTime.Now;
                    urlname = objOffice.Name.ToLower();
     // Getting error while updating urlname field, the line below
                    objNewOfficeItem.UrlName.SetStringNoFallback(new CultureInfo("en"false), Regex.Replace(urlname, @"[^\w\-\!\$\'\(\)\=\@\d_]+""-"));
                    objNewOfficeItem.Status = Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Master;
                    objOfficeManager.Publish(objNewOfficeItem);
                    
                    objOfficeManager.SaveChanges();
     
                    return "Office item added and published successfully.";
                }
  2. waqar
    waqar avatar
    76 posts
    Registered:
    28 Mar 2011
    03 Aug 2012
    Link to this post
    Hi Santhosh,

    Its little bit late response but will be useful for others.

    I also faced same issue when I was creating item with passing GUID in the createitem function. e.g
    OfficeItem objNewOfficeItem = objOfficeManager.CreateOffice(new Guid());
    
    But When I created item without passing GUID then It worked.
    e.g
    
    OfficeItem objNewOfficeItem = objOfficeManager.CreateOffice();
    
    
    Regards,
    Waqar
  3. Stephen
    Stephen avatar
    25 posts
    Registered:
    07 Feb 2013
    10 Dec 2014 in reply to waqar
    Link to this post


    OfficeItem objNewOfficeItem = objOfficeManager.CreateOffice(new Guid());
    
    But When I created item without passing GUID then It worked.
    e.g
    
    OfficeItem objNewOfficeItem = objOfficeManager.CreateOffice();
    
    
    Regards,
    Waqar
    

     

    Thanks Waqar!

     Two and a half years later, this is still confusing and a pain!  Telerik posts such great examples in blogs and such that give you 95% of the answer, and yet leave you dangling with these silly little issues that make no sense whatsoever.

     Bottom line, don't create ANY Sitefinity Object (in my case it was a BlogPost, rather than OfficeItem) passing in an initializing ID (Guid), let it create it's own, or your LStrings will be a bear to work with.
    <Shakes Head>

3 posts, 0 answered