Mattersphere Developers Forum
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Go down
avatar
Admin
Admin
Posts : 122
Join date : 2018-12-17
https://mattersphere-devs.forumotion.com

User Favourites Empty User Favourites

Thu 20 Dec 2018 - 12:19
Original post by Graham Shaw

Hi,I'm in the process of replacing your client / matter selection form. 

All is going fine except for looking at the last 10 opened cases. I have an sp that returns them but obviously I need to update the user favorites to say I've just opened matter X.

I can easily write the SQL to accomplish this but I'm guessing that the favourites are cached and so I might be better off using the object rather than writing the updates directly to the table.

Does anyone have an example of adding to the last 10 and also the users “Favourites”
Cheers
G

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Original post by Daniel Thompson

I have made 4 methods that you can use in your scripting to add to Clients & Files Last 10 and Favorites
Regards Danny

Code:
FWBS.OMS.OMSFile file = FWBS.OMS.OMSFile.GetFile(2072550659);
AddToFileLast10(file);

AddToClientLast10(file.Client);

AddToFileFavorites("", file);
AddToClientFavorites("", file.Client);

private void AddToFileLast10(FWBS.OMS.OMSFile file)
{
    FWBS.OMS.Favourites _favourites = new FWBS.OMS.Favourites("CLINETFILEFT", "LAST10");
    System.Data.DataView dv = _favourites.GetDataView();
    string caption = file.Client.ClientNo + "/" + file.FileNo + " : " +
        file.Client.ClientName + Environment.NewLine + file.FileDescription;
    
    if (_favourites.Count == 0)
    {
        _favourites.AddFavourite("LAST10",
            file.Client.GetOMSType().Glyph.ToString(),
            caption, file.Client.ClientNo,
            file.ID.ToString(), "-1");
    }
    else
    {
        _favourites.Param4(0, -1);
    }
    
    _favourites.ResetFilter();
    dv.Sort = "usrFavObjParam4";
    for (int i = dv.Count-1; i >= 0; i--)
    {
        dv[i]["usrFavObjParam4"] = i;
    }
    
    if (dv.Count > 10)
    {
        for (int i = dv.Count - 1; i >= 10; i--)
        {
            dv.Delete(i);
        }
    }
}

private void AddToClientLast10(FWBS.OMS.Client client)
{
    FWBS.OMS.Favourites _favourites = new FWBS.OMS.Favourites("CLINETFT", "LAST10");
    System.Data.DataView dv = _favourites.GetDataView();
    string caption = client.ClientNo + " : " + client.ClientName;
    if (_favourites.Count==0)
    {
        _favourites.AddFavourite("LAST10",
            client.GetOMSType().Glyph.ToString(),
            caption,client.ClientNo,
            client.ClientID.ToString(), "-1");
    }
    else
    {
        _favourites.Param4(0, -1);
    }
        
    _favourites.ResetFilter();
    dv.Sort = "usrFavObjParam4";
    for (int i = dv.Count - 1; i >= 0; i--)
    {
        dv[i]["usrFavObjParam4"] = i;
    }
    if (dv.Count > 10)
    {
        for (int i = dv.Count - 1; i >= 10; i--)
        {
            dv.Delete(i);
        }
    }
}

private void AddToClientFavorites(string code, FWBS.OMS.Client client)
{
    FWBS.OMS.Favourites _favourites = new FWBS.OMS.Favourites("CLINETFT", "LAST10");
    string caption = client.ClientNo + " : " + client.ClientName;
    switch(code)
    {
        case "GLOBAL":
        {
            _favourites.AddGlobalFavourite(code,
                client.GetOMSType().Glyph.ToString(), "GLOBAL",
                caption, client.ClientNo);
            
            break;
        }
        case "DEPT":
        {
            _favourites.AddGlobalFavourite(code,
                client.GetOMSType().Glyph.ToString(),
                FWBS.OMS.Session.OMS.CurrentFeeEarner.DefaultDepartment,
                caption, client.ClientNo);
                
            break;
        }
        default:
        {
            _favourites.AddFavourite("MYFAV",
                client.GetOMSType().Glyph.ToString(),
                caption,client.ClientNo);
                
            break;
        }
    }
}

private void AddToFileFavorites(string code, FWBS.OMS.OMSFile file)
{
    FWBS.OMS.Favourites _favourites = new FWBS.OMS.Favourites("CLINETFILEFT", "LAST10");
    string caption = file.Client.ClientNo + "/" + file.FileNo + " : " +
        file.Client.ClientName + Environment.NewLine + file.FileDescription;
        
    switch(code)
    {
        case "GLOBAL":
        {
            _favourites.AddGlobalFavourite(code,
                file.Client.GetOMSType().Glyph.ToString(),
                "GLOBAL", caption, file.Client.ClientNo,file.FileNo);
                
            break;
        }
        case "DEPT":
        {        
            _favourites.AddGlobalFavourite(code,
                file.Client.GetOMSType().Glyph.ToString(),
                FWBS.OMS.Session.OMS.CurrentFeeEarner.DefaultDepartment,
                caption, file.Client.ClientNo,file.FileNo);
                
            break;
        }
        default:
        {
            _favourites.AddFavourite("MYFAV",
                file.Client.GetOMSType().Glyph.ToString(),
                caption, file.Client.ClientNo,file.FileNo);
            break;
        }
    }
}
avatar
Admin
Admin
Posts : 122
Join date : 2018-12-17
https://mattersphere-devs.forumotion.com

User Favourites Empty Re: User Favourites

Thu 20 Dec 2018 - 12:23
Original post by Graham Shaw

Hi Danny,Just for anyone else who needs this, I had to amend the code a little, taking the AddToFileLast10 I had to add a filter based on param2 and 3, before testing to see if the count was zero...

Code:
string FiltStr = "usrFavObjParam2 ='" + file.Client.ClientNo +
    "' and usrFavObjParam3 = '" + file.FileNo + "'";

_favourites.ApplyFilter(FiltStr);

Code:
private void AddToFileLast10(FWBS.OMS.OMSFile file)
{
    FWBS.OMS.Favourites _favourites = new FWBS.OMS.Favourites("CLINETFILEFT", "LAST10");
    string FiltStr = "usrFavObjParam2 ='" + file.Client.ClientNo +
    "' and usrFavObjParam3 = '" + file.FileNo + "'";
    
    _favourites.ApplyFilter(FiltStr);
    
    System.Data.DataView dv = _favourites.GetDataView();
    string caption = file.Client.ClientNo + "/" + file.FileNo + " : " +
        file.Client.ClientName + Environment.NewLine + file.FileDescription;
    
    if (_favourites.Count == 0)
    {
        _favourites.AddFavourite("LAST10",
            file.Client.GetOMSType().Glyph.ToString(),
            caption, file.Client.ClientNo,
            file.FileNo.ToString(), "-1");
    }
    else
    {
        _favourites.Param4(0, -1);
    }
    
    _favourites.ResetFilter();
    dv.Sort = "usrFavObjParam4";
    for (int i = dv.Count-1; i >= 0; i--)
    {
        dv[i]["usrFavObjParam4"] = i;
    }
    
    if (dv.Count > 10)
    {
        for (int i = dv.Count - 1; i >= 10; i--)
        {
            dv.Delete(i);
        }
    }
}

Also I had to change the AddFavourite to reference the file.FileNo rather than File.ID, But now its all working fine, thanks again for your help with this 

G

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Original post by Daniel Thompson

That's great. Glad I could help. I have made the changes to my original post.
Regards 
Danny
Back to top
Permissions in this forum:
You cannot reply to topics in this forum