Can this first C# Code get converted to Java?

xmaximayer123 1 Reputation point
2021-05-31T06:54:04.203+00:00

C# Example

IService.cs

 namespace WcfService1
 {
     // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
     [ServiceContract]
     public interface IService1
     {

         [OperationContract]
         PersonsList GetPersons();

         [OperationContract]
         List<Person> GetPerson(string search);

         // TODO: Add your service operations here
     }


     // Use a data contract as illustrated in the sample below to add composite types to service operations.
     [DataContract]
     [XmlRootAttribute("Persons")]
     [Serializable]
     public class PersonsList
     {
         [DataMember]
         [XmlElement("Person")]
         public List<Person> personList { get; set; }
     }
     [DataContract]
     [Serializable]
     public class Person { 
         [DataMember]
         [XmlElement("Name")]
         public string name { get; set; }


         [DataMember]
         [XmlElement("Surname")]
         public string surname { get; set; }

         [DataMember]
         [XmlElement("City")]
         public string city { get; set; }
     }
 }

Service1.svc.cs

namespace WcfService1
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
// NOTE: In order to launch WCF Test Client for testing this service, please select Service1.svc or Service1.svc.cs at the Solution Explorer and start debugging.
public class Service1 : IService1
{
PersonsList persons = null;
public Service1()
{
using(TextReader reader = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + "/persons.xml"))
{
XmlSerializer serializer = new XmlSerializer(typeof(PersonsList));
persons = (PersonsList)serializer.Deserialize(reader);
}
}
public List<Person> GetPerson(string search)
{
return (from p in persons.personList where p.city.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0 ||
p.name.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0 ||
p.surname.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0
select p).ToList();
}

     public PersonsList GetPersons()
     {
         return persons;
     }
 }

}

MainWindow.xaml

<Window x:Class="WpfLINQ_BSP.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfLINQ_BSP"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<DataGrid x:Name="grid" HorizontalAlignment="Left" Height="271" VerticalAlignment="Top" Width="532" Margin="53,94,0,0" ItemsSource="{Binding}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Path=name}" />
<DataGridTextColumn Header="Surname" Binding="{Binding Path=surname}"/>
<DataGridTextColumn Header="City" Binding="{Binding Path=city}"/>
</DataGrid.Columns>
</DataGrid>
<TextBox x:Name="textBox1" HorizontalAlignment="Left" Height="30" Margin="120,59,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="152" TextChanged="textBox1_TextChanged"/>
<Label Content="Search" HorizontalAlignment="Left" Margin="53,63,0,0" VerticalAlignment="Top"/>

 </Grid>

</Window>

MainWindow.xaml.cs

namespace WpfLINQ_BSP
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
ServiceReference1.IService1 service;
ObservableCollection<ServiceReference1.Person> p;
public MainWindow()
{
service = new ServiceReference1.Service1Client();
p = new ObservableCollection<ServiceReference1.Person>(service.GetPersons().personList);

         InitializeComponent();

         grid.DataContext = p;
     }

     private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
     {
         p.Clear();
         service.GetPerson(textBox1.Text).ToList().ForEach(p.Add);
     }
 }

}

CLIENT
xjc -d src -p at.htl.perg.model note.xsd
public class EmployeeClient {

 public static void main(String[] args) {
     EmployeeClient employeeClient = new EmployeeClient();
     Scanner scan = new Scanner(System.in);
     String input;
     int id;
     System.out.println("Was möchtest du tun (Employees,Emlpoyee,Logbookentry)?");
     while (!(input = scan.nextLine()).toLowerCase().equals("abbruch")){
         switch (input.toLowerCase()){
             case "employees":
                 for(Employee e : employeeClient.getAllEmployees().getEmployee()){
                     System.out.println(e.toString());
                 }
                 System.out.println("Was möchtest du tun (Employees,Emlpoyee,Logbookentry)?");
                 break;
             case "employee":
                 System.out.print("ID: ");
                 id = scan.nextInt();
                 scan.nextLine();
                 System.out.println(employeeClient.getEmployee(id));
                 System.out.println("Was möchtest du tun (Employees,Emlpoyee,Logbookentry)?");
                 break;
             case "logbookentry":
                 System.out.print("ID: ");
                 id = scan.nextInt();
                 scan.nextLine();
                 System.out.print("Filter: ");
                 String timefilter= scan.nextLine();
                 employeeClient.getAllLogbookentriesFiltered(id, timefilter).getLogbookEntry().forEach(logbookEntry -> {
                     System.out.println(logbookEntry);
                 });
             case "abbruch":
                 System.out.println("Was möchtest du tun (Employees,Emlpoyee,Logbookentry)?");
                 break;
             default:
                 System.out.println("Dieser Befehl existiert nicht!");
         }
     };
 }
 public static Employees getAllEmployees(){
     ClientResource cr = new ClientResource("http://localhost:8888/api/employee");
     EmployeesResource empsr = cr.wrap(EmployeesResource.class);
     return empsr.readAll();
 }
 public static Employee getEmployee(Integer id){
     ClientResource cr = new ClientResource("http://localhost:8888/api/employee/"+id);
     EmployeeResource empr = cr.wrap(EmployeeResource.class);
     return empr.read();
 }
 public static Employee getAllLogbookentries(Integer id){
     ClientResource cr = new ClientResource("http://localhost:8888/api/employee/"+id+"/logbookentry");
     LogBookEntryResource ler = cr.wrap(LogBookEntryResource.class);
     return ler.readAll();
 }
 public static Employee getAllLogbookentriesFiltered(Integer id, String cal){
     ClientResource cr = new ClientResource("http://localhost:8888/api/employee/"+id+"/logbookentry/"+cal);
     LogBookEntryResource ler = cr.wrap(LogBookEntryResource.class);
     return ler.readAll();
 }
 public static void editEmployee(Employee employee){
     ClientResource cr = new ClientResource("http://localhost:8888/api/employee/"+employee.getId());
     EmployeeResource empr = cr.wrap(EmployeeResource.class);
     empr.update(employee);
 }
 public static void addLogbookentry(Integer id, LogbookEntry logbookEntry){
     ClientResource cr = new ClientResource("http://localhost:8888/api/employee/"+id+"/logbookentry");
     LogBookEntryResource ler = cr.wrap(LogBookEntryResource.class);
     ler.create(logbookEntry);
 }
 public void addEmployee(Employee e){
     ClientResource clientResource = new ClientResource("http://localhost:6969/api/employees");
     EmployeesResource employeesResource = clientResource.wrap(EmployeesResource.class);
     employeesResource.add(e);
 }

}

@WebServlet(urlPatterns = "/listEmployeeServlet")
public class ListEmployeeServlet extends HttpServlet {

 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     Employees employees = EmployeeClient.getAllEmployees();
     req.setAttribute("emps", employees);
     RequestDispatcher requestDispatcher = req.getRequestDispatcher("listEmployees.jsp");
     requestDispatcher.forward(req, resp);
 }

}

@WebServlet(urlPatterns = "/editEmp")
public class EditEmployeeServlet extends HttpServlet {

 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     int id = Integer.parseInt(req.getParameter("empId"));
     Employee employee = EmployeeClient.getEmployee(id);
     Employee logBookEntries;
     if(req.getParameter("filter") == null || req.getParameter("filter").equals("")){
         logBookEntries = EmployeeClient.getAllLogbookentries(id);
     } else {
         logBookEntries = EmployeeClient.getAllLogbookentriesFiltered(id, req.getParameter("filter")+":00");
         req.setAttribute("filter", req.getAttribute("filter"));
     }
     req.setAttribute("logBookEntries", logBookEntries);
     req.setAttribute("emp", employee);
     RequestDispatcher requestDispatcher = req.getRequestDispatcher("editEmployee.jsp");
     requestDispatcher.forward(req, resp);
 }

}

@WebServlet(urlPatterns = "/updateEmployee")
public class UpdateEmployeeServlet extends HttpServlet {

 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     int id = Integer.parseInt(req.getParameter("id"));
     String fname = req.getParameter("fname");
     String lname =  req.getParameter("lname");
     String birth = req.getParameter("birth");
     Employee e = EmployeeClient.getEmployee(id);
     e.setFirstname(fname);
     e.setLastname(lname);
     e.setDateOfBirth(birth);
     EmployeeClient.editEmployee(e);
     req.setAttribute("emps", EmployeeClient.getAllEmployees());
     RequestDispatcher requestDispatcher = req.getRequestDispatcher("listEmployees.jsp");
     requestDispatcher.forward(req,resp);
 }

}

@WebServlet(urlPatterns = "/addLogBookEntry")
public class AddLogBookEntryServlet extends HttpServlet {

 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     Employee employee = EmployeeClient.getEmployee(Integer.parseInt(req.getParameter("id2")));
     req.setAttribute("emp", employee);
     RequestDispatcher requestDispatcher = req.getRequestDispatcher("addLogBookEntry.jsp");
     requestDispatcher.forward(req, resp);
 }

}

@WebServlet(urlPatterns = "/saveLogBookEntry")
public class SaveLogBookEntryServlet extends HttpServlet {

 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     int id=Integer.parseInt(req.getParameter("id"));
     XMLGregorianCalendar start=XMLGregorianCalendarImpl.parse(req.getParameter("starttime")+":00");
     XMLGregorianCalendar end=XMLGregorianCalendarImpl.parse(req.getParameter("endtime")+":00");
     String activity= req.getParameter("activity");
     LogbookEntry l=new LogbookEntry();
     l.setActivity(activity);
     l.setEndTime(end);
     l.setStartTime(start);
     EmployeeClient.addLogbookentry(id,l);
     Employee logBookEntries;
     if(req.getAttribute("filter") == null || req.getParameter("filter").equals("")){
         logBookEntries = EmployeeClient.getAllLogbookentries(id);
     } else {
         logBookEntries = EmployeeClient.getAllLogbookentriesFiltered(id, req.getParameter("filter"));
         req.setAttribute("filter", req.getAttribute("filter"));
     }
     req.setAttribute("logBookEntries", logBookEntries);
     Employee emp = EmployeeClient.getEmployee(id);
     req.setAttribute("emp",emp);
     RequestDispatcher requestDispatcher=req.getRequestDispatcher("editEmployee.jsp");
     requestDispatcher.forward(req,resp);
 }

}

INTERFACES

public interface EmployeeResource {

 @Get
 public Employee read();
 @Put
 public void update(Employee e);

}

public interface EmployeesResource {

 @Get("xml")
 public Employees readAll();
 @Post
 public void add(Employee e);

}

public interface LogBookEntryResource {

 @Get
 public Employee readAll();
 @Post("xml")
 public void create(LogbookEntry l);

}

MODEL

public class Model {

 private static final String XML_PATH = "data.xml";
 private static Model instance;
 private Employees employees;
 private Model(){
     JAXBContext jaxbContext = null;
     try {
         jaxbContext = JAXBContext.newInstance(Employees.class);
         Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
         this.employees = (Employees) jaxbUnmarshaller.unmarshal(new File(XML_PATH));
     }catch (JAXBException e){
         e.printStackTrace();
     }
 }
 public static Model getInstance(){
     if(instance == null){
         instance = new Model();
     }
     return instance;
 }
 public Employees getEmployees(){
     return employees;
 }
 public void save(){
     JAXBContext jaxbContext = null;
     try {
         jaxbContext = JAXBContext.newInstance(Employees.class);
         Marshaller marshaller = jaxbContext.createMarshaller();
         marshaller.marshal(employees, new File(XML_PATH));
     } catch (JAXBException e) {
         e.printStackTrace();
     }
 }

}

SERVER

public class EmployeeServer {

 public static void main(String[] args) throws Exception {
     Component comp=new Component();
     comp.getServers().add(Protocol.HTTP,8888);
     comp.getDefaultHost().attach("/api",new EmployeeApp());
     comp.start();
 }

}

APP

public class EmployeeApp extends Application {

 @Override
 public Restlet createInboundRoot(){
     Router r = new Router();
     r.attach("/employee" , EmployeesServerResource.class);
     r.attach("/employee/{id}",EmployeeServerResource.class);
     r.attach("/employee/{id}/logbookentry/{filter}",LogBookEntryServerResource.class);
     r.attach("/employee/{id}/logbookentry",LogBookEntryServerResource.class);
     return r;
 }

}

public class EmployeeServerResource extends ServerResource implements EmployeeResource {

 @Override
 public Employee read() {
     for (Employee employee : Model.getInstance().getEmployees().getEmployee()) {
         if(employee.getId() == Integer.parseInt((String)getRequestAttributes().get("id"))){
             return employee;
         }
     }
     return null;
 }
 @Override
 public void update(Employee e) {
     List<Employee> emps = Model.getInstance().getEmployees().getEmployee();
     for(int i = 0;i<emps.size();i++){
         if(emps.get(i).getId().equals(e.getId())){
             emps.set(i,e);
             Model.getInstance().save();
             return;
         }
     }
 }

}

public class EmployeesServerResource extends ServerResource implements EmployeesResource {

 @Override
 public Employees readAll() {
     return Model.getInstance().getEmployees();
 }
 @Override
 public void add(Employee e) {
     Model.getInstance().getEmployees().getEmployee().add(e);
 }

}

public class LogBookEntryServerResource extends ServerResource implements LogBookEntryResource {

 @Override
 public Employee readAll() {
     Employee e = null;
     for (Employee employee : Model.getInstance().getEmployees().getEmployee()) {
         if(employee.getId().toString().equals(getRequestAttributes().get("id"))){
             e = employee;
             break;
         }
     }
     if(e!=null){
         Employee retVal = new Employee();
         if(this.getRequestAttributes().get("filter")==null || this.getRequestAttributes().get("filter").equals("")){
             retVal.getLogbookEntry().addAll(e.getLogbookEntry());
             return retVal;
         }
         List<LogbookEntry> filteredLog = new ArrayList<>();
         for (LogbookEntry entry : e.getLogbookEntry()) {
             if(entry.getEndTime().compare(XMLGregorianCalendarImpl.parse(this.getRequestAttributes().get("filter").toString()))==1){
                 filteredLog.add(entry);
             }
         }
         retVal.getLogbookEntry().addAll(filteredLog);
         return retVal;
     }
     return null;
 }
 @Override
 public void create(LogbookEntry logbookEntry) {
     for (Employee employee : Model.getInstance().getEmployees().getEmployee()) {
         if(employee.getId().equals(Integer.parseInt(getRequestAttributes().get("id").toString()))){
             employee.getLogbookEntry().add(logbookEntry);
             Model.getInstance().save();
             return;
         }
     }
 }

}

JSP

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<title>Herzlich willkommen!</title>
</head>
<body>
<h1>Zeiterfassung</h1>
<form action="listEmployeeServlet" method="get">
<input type="submit" value="Mitarbeiterliste">
</form>
</body>
</html>

<%@ page import="zeiterfassung.model.Employee" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

<title>Mitarbeiterliste</title>

</head>
<body>
<jsp:useBean id="emps" class="zeiterfassung.model.Employees" scope="request"></jsp:useBean>

<div class="w3-container">
<h1>Mitarbeiterliste</h1>

<table>
    <thead>
        <tr>
            <th>Mitarbeiter-ID</th>
            <th>Vorname</th>
            <th>Nachname</th>
        </tr>
    </thead>
    <tbody>
        <% for(Employee emp : emps.getEmployee()){ %>
            <tr>
                <td><%=emp.getId()%></td>
                <td><%=emp.getFirstname()%></td>
                <td><%=emp.getLastname()%></td>
                <td>
                    <form action="editEmp" method="get">
                        <input type="hidden" name="empId" id="empId" value="<%=emp.getId()%>">
                        <input type="submit" value="Edit" class="btn-floating btn-large cyan">
                    </form>
                </td>
            </tr>
        <% } %>
    </tbody>
</table>
    <form action="addEmp" method="post">
        <input type="submit" value="Add Employee">
    </form>
</div>

</body>
</html>

<%@ page import="zeiterfassung.model.LogbookEntry" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<title>Employee</title>
</head>
<body>
<jsp:useBean id="emp" class="zeiterfassung.model.Employee" scope="request"></jsp:useBean>
<jsp:useBean id="logBookEntries" class="zeiterfassung.model.Employee" scope="request"></jsp:useBean>

<h1>${emp.firstname} ${emp.lastname}</h1>

<form action="updateEmployee" method="post">
    <label>Id: ${emp.id}</label><br>
    <label for="fname">Vorname:</label><br>
    <input type="text" id="fname" name="fname" value="${emp.firstname}"><br>
    <label for="lname">Nachname:</label><br>
    <input type="text" id="lname" name="lname" value="${emp.lastname}"><br>
    <label for="lname">Geburtsdatum:</label><br>
    <input type="date" id="birth" name="birth" value="${emp.dateOfBirth}"><br>
    <input type="hidden" id="id" name = "id" value="${emp.id}">
    <input class="waves-effect waves-light btn" type="submit" value="Speichern">
</form>

<h2>Zeiten:</h2>

<form action="editEmp" method="get">
    <label>Filter: </label>
    <input type="time" id="filter" name="filter" value="<%=request.getParameter("filter")%>">
    <input type="hidden" id="empId" name = "empId" value="${emp.id}">
    <input class="waves-effect waves-light btn" type="submit" value="filtern">
</form>

<table>
    <thead>
    <tr>
        <th>Aktivität</th>
        <th>Start Zeit</th>
        <th>End Zeit</th>
    </tr>
    </thead>
    <tbody>
    <% for(LogbookEntry entry : logBookEntries.getLogbookEntry()){ %>
    <tr>
        <td><%=entry.getActivity()%></td>
        <td><%=entry.getStartTime()%></td>
        <td><%=entry.getEndTime()%></td>
    </tr>
    <% } %>
    </tbody>
</table>

<form action="addLogBookEntry" method="get">
    <input type="hidden" id="id2" name = "id2" value="${emp.id}">
    <input class="waves-effect waves-light btn" type="submit" value="neue Zeit verbuchen">
</form>

<form action="listEmployeeServlet" method="get">
    <input class="waves-effect waves-light btn" type="submit" value="Zurück">
</form>
</div>

</body>
</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<link rel="stylesheet" href="css/w3.css">
<title>Zeit verbuchen</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>
<body>
<jsp:useBean id="emp" class="zeiterfassung.model.Employee" scope="request"></jsp:useBean>
<div class="w3-container">
<h1>${emp.firstname} ${emp.lastname}</h1>

<form method="post" action="saveLogBookEntry">
    <input type="hidden" id="id" name="id" value="${emp.id}">
    <label for="activity">Aktivität:</label>
    <input type="text" id="activity" name="activity"><br>
    <label for="starttime">Startzeit:</label>
    <input type="time" id="starttime" name="starttime"><br>
    <label for="endtime">Endzeit:</label>
    <input type="time" id="endtime" name="endtime"><br>
    <input class="waves-effect waves-light btn" type="submit" value="Speichern">
</form>

<form action="editEmp" method="get">
    <input type="hidden" id="empId" name="empId" value="${emp.id}">
    <input class="waves-effect waves-light btn" type="submit" value="Zurück">
</form>
</div>

</body>
</html>

System Center Virtual Machine Manager
0 comments No comments
{count} votes

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.