//public string GroupList { get; set; } //private public static DbRosterItem FromFSharp(RosterItem item) { var subs = Yaaf.Xmpp.IM.Sql.Model.DbSubscriptionType.NotEntered; if (item.Subscription != null) { if (item.Subscription.Value == SubscriptionType.Both) { subs = Model.DbSubscriptionType.Both; } else if (item.Subscription.Value == SubscriptionType.From) { subs = Model.DbSubscriptionType.From; } else if (item.Subscription.Value == SubscriptionType.To) { subs = Model.DbSubscriptionType.To; } else if (item.Subscription.Value == SubscriptionType.SubsNone) { subs = Model.DbSubscriptionType.None; } } var ask = Yaaf.Xmpp.IM.Sql.Model.DbAskType.None; if (item.Ask != null) { if (item.Ask.Value == AskType.Subscribe) { ask = Model.DbAskType.Subscribe; } } var rosterItem = new DbRosterItem() { Jid = item.Jid.BareId, Name = SqlRosterStore.FromFSharp(item.Name), Approved = SqlRosterStore.FromFSharp(item.Approved, false), Ask = ask, Subscription = subs }; var groups = new List <DbRosterItemGroup> (); foreach (var group in item.Groups) { var groupEntity = new DbRosterGroup() { Name = group }; var groupCon = new DbRosterItemGroup() { RosterGroup = groupEntity, RosterItem = rosterItem }; groups.Add(groupCon); } rosterItem.Groups = groups; return(rosterItem); }
public RosterItem ToFSharp() { Microsoft.FSharp.Core.FSharpOption <AskType> approved = null; Microsoft.FSharp.Core.FSharpOption <SubscriptionType> subs = null; switch (Ask) { case Yaaf.Xmpp.IM.Sql.Model.DbAskType.Subscribe: approved = new Microsoft.FSharp.Core.FSharpOption <AskType>(AskType.Subscribe); break; default: break; } switch (Subscription) { case Yaaf.Xmpp.IM.Sql.Model.DbSubscriptionType.Both: subs = new Microsoft.FSharp.Core.FSharpOption <SubscriptionType>(SubscriptionType.Both); break; case Yaaf.Xmpp.IM.Sql.Model.DbSubscriptionType.None: subs = new Microsoft.FSharp.Core.FSharpOption <SubscriptionType>(SubscriptionType.SubsNone); break; case Yaaf.Xmpp.IM.Sql.Model.DbSubscriptionType.To: subs = new Microsoft.FSharp.Core.FSharpOption <SubscriptionType>(SubscriptionType.To); break; case Yaaf.Xmpp.IM.Sql.Model.DbSubscriptionType.From: subs = new Microsoft.FSharp.Core.FSharpOption <SubscriptionType>(SubscriptionType.From); break; default: break; } var list = ListModule.OfSeq(from g in Groups select g.RosterGroup.Name); return(new RosterItem( JabberId.Parse(Jid), SqlRosterStore.ToFSharp(Name), !Approved ? null : (SqlRosterStore.ToFSharp(true)), approved, subs, list)); }