Click here to Skip to main content
15,891,828 members
Home / Discussions / C#
   

C#

 
GeneralRe: Design Question Pin
Mycroft Holmes10-Jul-13 18:22
professionalMycroft Holmes10-Jul-13 18:22 
GeneralRe: Design Question Pin
Kevin Marois10-Jul-13 18:58
professionalKevin Marois10-Jul-13 18:58 
GeneralRe: Design Question Pin
Mycroft Holmes10-Jul-13 19:34
professionalMycroft Holmes10-Jul-13 19:34 
GeneralRe: Design Question Pin
Kevin Marois10-Jul-13 19:57
professionalKevin Marois10-Jul-13 19:57 
GeneralRe: Design Question Pin
Freak3010-Jul-13 21:23
Freak3010-Jul-13 21:23 
GeneralRe: Design Question Pin
jschell11-Jul-13 8:47
jschell11-Jul-13 8:47 
GeneralRe: Design Question Pin
Mycroft Holmes11-Jul-13 12:50
professionalMycroft Holmes11-Jul-13 12:50 
AnswerRe: Design Question Pin
Keith Barrow10-Jul-13 22:38
professionalKeith Barrow10-Jul-13 22:38 
A couple of options spring to mind immediately.

First, you can create a custom exception type (e.g. PayTypeInUseAndCannotBeDeletedException) and throw that, then catch this type in the UI. This has the advantage of not changing the method signature, but if feels like exception as business logic.
Personally I'd return a status on the method. Probably you can get away with a boolean pass/fail as you only have one failure mode.

C#
public static bool DeletePayType(int PayTypeId)
{
    using (var dc = getDataContext())
    {

        bool inUse = isPayTypeInUse(PayTypeId);

        if (inUse)
        {
            return false;
        }
        else
        {
            var payType = (from ca in dc.PayTypes
                            where ca.PayTypeId == PayTypeId
                            select ca).FirstOrDefault();

            if (payType != null)
            {
                dc.PayTypes.DeleteOnSubmit(payType);

                try
                {
                    dc.SubmitChanges();
                    return true;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
    }
}


I'd also get rid of the try/catch around the submit. It isn't achieving anything other than removing potentially useful stack trace (See here[^] if you don't know what I mean)), unless this was intended of course.

AnswerRe: Design Question Pin
Pete O'Hanlon10-Jul-13 23:51
mvePete O'Hanlon10-Jul-13 23:51 
GeneralRe: Design Question Pin
Keith Barrow11-Jul-13 1:45
professionalKeith Barrow11-Jul-13 1:45 
AnswerRe: Design Question Pin
Shameel11-Jul-13 1:06
professionalShameel11-Jul-13 1:06 
AnswerRe: Design Question Pin
jschell11-Jul-13 8:52
jschell11-Jul-13 8:52 
QuestionUSB drive detection for client-server in C#... Pin
Shibbi10-Jul-13 6:25
Shibbi10-Jul-13 6:25 
AnswerRe: USB drive detection for client-server in C#... PinPopular
NotPolitcallyCorrect10-Jul-13 6:43
NotPolitcallyCorrect10-Jul-13 6:43 
QuestionUSB drive detection for client-server in C# Pin
Shibbi10-Jul-13 6:23
Shibbi10-Jul-13 6:23 
Question.Net Mobile Computing Pin
sijimann10-Jul-13 0:58
sijimann10-Jul-13 0:58 
AnswerRe: .Net Mobile Computing Pin
eddieangel10-Jul-13 10:09
eddieangel10-Jul-13 10:09 
QuestionSqlCe setup issue in C# wpf Pin
McLux9-Jul-13 21:18
McLux9-Jul-13 21:18 
AnswerRe: SqlCe setup issue in C# wpf Pin
Mycroft Holmes9-Jul-13 22:52
professionalMycroft Holmes9-Jul-13 22:52 
GeneralRe: SqlCe setup issue in C# wpf Pin
McLux9-Jul-13 23:00
McLux9-Jul-13 23:00 
GeneralRe: SqlCe setup issue in C# wpf Pin
Mycroft Holmes9-Jul-13 23:04
professionalMycroft Holmes9-Jul-13 23:04 
QuestionSynchronization csv file to SQL Server 2008 R2 Database Pin
Uyen Nguyen Dinh9-Jul-13 18:42
Uyen Nguyen Dinh9-Jul-13 18:42 
AnswerRe: Synchronization csv file to SQL Server 2008 R2 Database Pin
Richard MacCutchan9-Jul-13 21:34
mveRichard MacCutchan9-Jul-13 21:34 
AnswerRe: Synchronization csv file to SQL Server 2008 R2 Database Pin
Mycroft Holmes9-Jul-13 22:49
professionalMycroft Holmes9-Jul-13 22:49 
QuestionTransactionScope in a sub class? Pin
Dominik9-Jul-13 10:36
Dominik9-Jul-13 10:36 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.