/// <summary>
 /// Metoda pro kontrolu validnosti zadaných údajů pro simulaci. Předpokládá se použití na straně serveru.
 /// </summary>
 /// <param name="instance">Instance parametrů simulace ke kontrole.</param>
 /// <returns>Úspěch kontroly.</returns>
 /// <remarks>Při neplatných údajích dochází k vyhození výjimky<see cref="FaultException<GeneratorServiceFault>"/></remarks>
 /// <exception cref="FaultException<GeneratorServiceFault>"
 public static bool CheckSimulationParams(SimulationParams instance)
 {
     if (instance == null)
     {
         throw new FaultException <GeneratorServiceFault>(new GeneratorServiceFault("Non initialiazed simulation parameters."), new FaultReason("SimulationsParams is null."));
     }
     UserIdentity.CheckUserIdentity(instance.User); //kontrola uzivatelske identity
     if (instance.Senates == null)                  //test zda jsou zadany nejake senaty
     {
         throw new FaultException <GeneratorServiceFault>(new GeneratorServiceFault("Non initialiazed list of senates."), new FaultReason("List of Senates is null."));
     }
     instance.Senates.ForEach((x) => Senate.CheckSenate(x));//kontrola konzistence senatu v seznamu
     if (instance.AlgorithmsToSimulate == null)
     {
         throw new FaultException <GeneratorServiceFault>(new GeneratorServiceFault("Non initialiazed list of algorithms."), new FaultReason("List of AlgorithmsToSimulate is null."));
     }
     if (instance.IterationsCount < 1)//pocet simulaci musi byt alespon jedna
     {
         throw new FaultException <GeneratorServiceFault>(new GeneratorServiceFault(String.Format("Number of iteration of simulation: {0} is less then 1", instance.IterationsCount)), new FaultReason("No iteration."));
     }
     if (instance.CasesToDistribution < 1)//pocet pripadu k rozdeleni musi byt alespon jedna
     {
         throw new FaultException <GeneratorServiceFault>(new GeneratorServiceFault(String.Format("Cases to distribution: {0} is less then 1", instance.CasesToDistribution)), new FaultReason("No cases to distribution."));
     }
     return(true);
 }
Esempio n. 2
0
        AlgorithmFactory factory = new AlgorithmFactory();//vytvor factory

        /// <summary>
        /// Metoda vrací informace o implementovaných algoritmech rozdělování případů na straně serveru.
        /// </summary>
        /// <param name="id">Identifikátor uživatele.</param>
        /// <returns></returns>
        public List <AlgorithmInfo> GetImplementedAlgorithmInfo(UserIdentity id)
        {
            bool   fault        = false;//predpokladej ze chyba neni
            string faultmessage = "UNKNOWN";

            try
            {
                if (UserIdentity.CheckUserIdentity(id))//over parametry, pokud selze nastava vyjimka
                {
                    Debug.WriteLine("Server:GetImplementedAlgorithmInfo:UserIdentity " + id.ID);
                    return((from x in factory.Descriptions select new AlgorithmInfo(x.ID.ToString(), x.Name, x.Description)).ToList <AlgorithmInfo>());
                }
            }
            catch (FaultException <GeneratorServiceFault> ex)                                                                                       //nastane pri vnitrnich problem s validovanim uzivatele
            {
                fault        = true;                                                                                                                //nastala chyba pri validovani
                faultmessage = ex.Reason.ToString();                                                                                                //uloz si spravu
                throw;                                                                                                                              //vyhod vyjimku znovu
            }
            catch (Exception e)                                                                                                                     //nemelo by nikdy nastat
            {
                faultmessage = e.Message;                                                                                                           //nejaka neocekavana chyba
                fault        = true;
                throw new FaultException <GeneratorServiceFault>(new GeneratorServiceFault("Unknown reason."), new FaultReason("Unknown reason.")); //vyhod vyjimku
            }
            finally
            {
                if (ConfigurationManager.AppSettings["LoggingSimulationService"].ToUpper() == "TRUE")//kdyz je logovani zapnuto
                {
                    Debug.WriteLine("LOGING:");
                    if (fault)                                                                            //kdyz byla chyba
                    {
                        string user = (id != null && id.ID != null) ? id.ID : "UNKNOWN";                  //nemusel byt zadan uzivatel
                        Debug.WriteLine("Fault " + user + " : " + faultmessage);
                        MSPGeneratorServicesLog.WriteActionFault(user, "GetAlgorithmInfo", faultmessage); //loguj akci a chybu
                    }
                    else
                    {
                        Debug.WriteLine("Succes");
                        MSPGeneratorServicesLog.WriteActionSuccess(id.ID, "GetAlgorithmInfo");//loguj akci
                    }
                }
            }
            return(null);
        }
 /// <summary>
 /// Metoda pro kontrolu validnosti zadaných údajů pro přidělování případů. Předpokládá se použití na straně služby.
 /// </summary>
 /// <param name="instance">Instance parametrů přidělení ke kontrole.</param>
 /// <returns>Úspěch kontroly.</returns>
 /// <remarks>Při neplatných údajích dochází k vyhození výjimky<see cref="FaultException<GeneratorServiceFault>"/></remarks>
 /// <exception cref="FaultException<GeneratorServiceFault>"
 public static bool CheckAssignCaseParams(AssignCaseParams instance)
 {
     if (instance == null)
     {
         throw new FaultException <GeneratorServiceFault>(new GeneratorServiceFault("Non initialiazed simulation parameters."), new FaultReason("SimulationsParams is null."));
     }
     UserIdentity.CheckUserIdentity(instance.User); //kontrola uzivatelske identity
     if (instance.Senates == null)                  //test zda jsou zadany nejake senaty
     {
         throw new FaultException <GeneratorServiceFault>(new GeneratorServiceFault("Non initialiazed list of senates."), new FaultReason("List of Senates is null."));
     }
     instance.Senates.ForEach((x) => Senate.CheckSenate(x));//kontrola konzistence senatu v seznamu
     if (instance.CaseIdentificator == null)
     {
         throw new FaultException <GeneratorServiceFault>(new GeneratorServiceFault("Non initialiazed case identificator."), new FaultReason("Case Identificator is null."));
     }
     return(true);
 }