User: cmicali Date: 06/08/31 16:37:48 Modified: documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Domain TimeAllocationDaoImpl.cs TimecardDaoImpl.cs TimecardImpl.cs UserDaoImpl.cs documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Service TimeTrackingServiceImpl.cs documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.WebServices/App_Code TimeTrackingService.cs documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/App_Code DataSourceUtils.cs documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/App_WebReferences/TimeTrackingService TimeTrackingService.disco TimeTrackingService.discomap TimeTrackingService.wsdl documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web NewTimecardSetup.aspx NewTimecardSetup.aspx.cs SearchTimecards.aspx TimecardDetails.aspx TimecardDetails.aspx.cs Web.config documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/Style global.css documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker Northwind.TimeTracker.sln documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/mda/src/uml Northwind.TimeTracker.Model.xmi Added: documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Lib RJS.Web.WebControl.PopCalendar.dll documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/PopCalendar2005/CSS Classic.css documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/PopCalendar2005/CSS/Classic_Images baddate.gif close.gif closedown.gif down.gif drop1.gif drop2.gif left1.gif left2.gif right1.gif right2.gif special.gif up.gif documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/PopCalendar2005 Calendar.gif DisableCalendar.gif PopCalendar.js PopCalendarFunctions.js Log: - Updated Revision Changes Path 1.4 +31 -6 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Domain/TimeAllocationDaoImpl.cs Index: TimeAllocationDaoImpl.cs =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Domain/TimeAllocationDaoImpl.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- TimeAllocationDaoImpl.cs 29 Aug 2006 05:02:06 -0000 1.3 +++ TimeAllocationDaoImpl.cs 31 Aug 2006 23:37:46 -0000 1.4 @@ -37,13 +37,38 @@ /// </summary> public override Northwind.TimeTracker.Domain.TimeAllocation TimeAllocationVOToEntity(Northwind.TimeTracker.VO.TimeAllocationVO timeAllocationVO) { - // VO to entity conversion - Northwind.TimeTracker.Domain.TimeAllocation entity = Northwind.TimeTracker.Domain.TimeAllocation.Factory.newInstance(); - + Northwind.TimeTracker.Domain.TimeAllocation entity; + if (timeAllocationVO.Id > 0) + { + entity = this.Load(timeAllocationVO.Id); + } + else + { + entity = Northwind.TimeTracker.Domain.TimeAllocation.Factory.newInstance(); entity.Id = timeAllocationVO.Id; - // entity.Task - // entity.Timecard - // entity.TimePeriod + } + + if (timeAllocationVO.TaskId.HasValue) + { + entity.Task = this.TaskDao.Load(timeAllocationVO.TaskId.Value); + } + + if (entity.TimePeriod == null) + { + entity.TimePeriod = TimePeriod.newInstance(timeAllocationVO.TimePeriodVO.StartTime, timeAllocationVO.TimePeriodVO.EndTime); + } + else + { + if (timeAllocationVO.TimePeriodVO.StartTime.HasValue) + { + entity.TimePeriod.StartTime = timeAllocationVO.TimePeriodVO.StartTime.Value; + } + + if (timeAllocationVO.TimePeriodVO.EndTime.HasValue) + { + entity.TimePeriod.EndTime = timeAllocationVO.TimePeriodVO.EndTime.Value; + } + } return entity; 1.5 +70 -7 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Domain/TimecardDaoImpl.cs Index: TimecardDaoImpl.cs =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Domain/TimecardDaoImpl.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- TimecardDaoImpl.cs 29 Aug 2006 15:53:37 -0000 1.4 +++ TimecardDaoImpl.cs 31 Aug 2006 23:37:46 -0000 1.5 @@ -10,6 +10,7 @@ using NHibernate; using NHibernate.Expression; using System.Collections; +using Northwind.TimeTracker.VO; namespace Northwind.TimeTracker.Domain @@ -99,16 +100,78 @@ /// </summary> public override Northwind.TimeTracker.Domain.Timecard TimecardVOToEntity(Northwind.TimeTracker.VO.TimecardVO timecardVO) { - // VO to entity conversion - Northwind.TimeTracker.Domain.Timecard entity = Northwind.TimeTracker.Domain.Timecard.Factory.newInstance(); + Northwind.TimeTracker.Domain.Timecard entity; + if (timecardVO.Id > 0) + { + entity = this.Load(timecardVO.Id); + if (entity.Status != TimecardStatus.Draft) + { + throw new Exception("Unable to save Timecard in " + entity.Status.ToString() + " status"); + } + } + else + { + entity = Northwind.TimeTracker.Domain.Timecard.Factory.newInstance(); + entity.Status = TimecardStatus.Draft; + } entity.Comments = timecardVO.Comments; - entity.Id = timecardVO.Id; entity.StartDate = timecardVO.StartDate; - entity.Status = timecardVO.Status; - // entity.Allocations - // entity.Approver - // entity.Submitter + entity.Approver = this.UserDao.FindByUsername(timecardVO.ApproverName); + entity.Submitter = this.UserDao.FindByUsername(timecardVO.SubmitterName); + + // Update existing and remove missing allocations + ArrayList allocationsToRemove = new ArrayList(); + foreach (TimeAllocation allocation in entity.Allocations) + { + bool existsInVo = false; + foreach (TimeAllocationVO allocationVO in timecardVO.Allocations) + { + if (allocation.Id == allocationVO.Id) + { + existsInVo = true; + // Allocation was found in VO list + // Update it + break; + } + } + if (!existsInVo) + { + // Allocation was not found in VO list + // Mark for removal + allocationsToRemove.Add(allocation); + } + } + // Remove all marked allocations + entity.Allocations.RemoveAll(allocationsToRemove); + + ArrayList allocationsToAdd = new ArrayList(); + // Add new allocations + foreach (TimeAllocationVO allocationVO in timecardVO.Allocations) + { + bool existsInEntity = false; + if (allocationVO.Id > 0) + { + foreach (TimeAllocation allocation in entity.Allocations) + { + if (allocationVO.Id == allocation.Id) + { + existsInEntity = true; + break; + } + } + } + if (!existsInEntity) + { + TimeAllocation newAllocation = this.TimeAllocationDao.TimeAllocationVOToEntity(allocationVO); + allocationsToAdd.Add(newAllocation); + } + } + + foreach (TimeAllocation allocation in allocationsToAdd) + { + entity.AddTimeAllocation(allocation); + } return entity; 1.2 +2 -2 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Domain/TimecardImpl.cs Index: TimecardImpl.cs =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Domain/TimecardImpl.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- TimecardImpl.cs 28 Aug 2006 04:22:17 -0000 1.1 +++ TimecardImpl.cs 31 Aug 2006 23:37:46 -0000 1.2 @@ -22,8 +22,8 @@ /// </summary> public override void AddTimeAllocation(Northwind.TimeTracker.Domain.TimeAllocation timeAllocation) { - //${toDoTag} implement public void addTimeAllocation(Northwind.TimeTracker.Domain.TimeAllocation timeAllocation) - throw new NotImplementedException("Northwind.TimeTracker.Domain.Timecard.addTimeAllocation(Northwind.TimeTracker.Domain.TimeAllocation timeAllocation) Not implemented!"); + this.Allocations.Add(timeAllocation); + timeAllocation.Timecard = this; } } 1.3 +6 -1 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Domain/UserDaoImpl.cs Index: UserDaoImpl.cs =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Domain/UserDaoImpl.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- UserDaoImpl.cs 29 Aug 2006 02:39:33 -0000 1.2 +++ UserDaoImpl.cs 31 Aug 2006 23:37:46 -0000 1.3 @@ -35,7 +35,10 @@ entity.IsActive, entity.Comment, entity.CreationDate, - roles); + roles, + entity.FirstName, + entity.LastName); + return userVO; } @@ -54,6 +57,8 @@ entity.IsActive = userVO.IsActive; entity.Comment = userVO.Comment; entity.CreationDate = userVO.CreationDate; + entity.FirstName = userVO.FirstName; + entity.LastName = userVO.LastName; return entity; 1.3 +37 -0 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Service/TimeTrackingServiceImpl.cs Index: TimeTrackingServiceImpl.cs =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Core/src/Northwind/TimeTracker/Service/TimeTrackingServiceImpl.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- TimeTrackingServiceImpl.cs 29 Aug 2006 05:02:07 -0000 1.2 +++ TimeTrackingServiceImpl.cs 31 Aug 2006 23:37:46 -0000 1.3 @@ -54,5 +54,42 @@ taskVos.CopyTo(voArray, 0); return voArray; } + + protected override long HandleSaveTimecard(TimecardVO timecard) + { + Timecard entity = this.TimecardDao.TimecardVOToEntity(timecard); + entity.Status = TimecardStatus.Draft; + if (timecard.Id == 0) + { + this.TimecardDao.Create(entity); + } + else + { + this.TimecardDao.Update(entity); + } + return entity.Id; + } + + protected override long HandleSubmitTimecard(TimecardVO timecard) + { + Timecard entity = this.TimecardDao.TimecardVOToEntity(timecard); + entity.Status = TimecardStatus.Submitted; + if (timecard.Id == 0) + { + this.TimecardDao.Create(entity); + } + else + { + this.TimecardDao.Update(entity); + } + return entity.Id; + + } + + protected override void HandleDeleteTimecard(long timecardId) + { + this.TimecardDao.Remove(timecardId); + } + } } 1.3 +18 -0 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.WebServices/App_Code/TimeTrackingService.cs Index: TimeTrackingService.cs =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.WebServices/App_Code/TimeTrackingService.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- TimeTrackingService.cs 29 Aug 2006 05:02:07 -0000 1.2 +++ TimeTrackingService.cs 31 Aug 2006 23:37:46 -0000 1.3 @@ -63,5 +63,23 @@ return Service.GetAllTasks(); } + [WebMethod] + public long SaveTimecard(TimecardVO timecard) + { + return Service.SaveTimecard(timecard); + } + + [WebMethod] + public long SubmitTimecard(TimecardVO timecard) + { + return Service.SubmitTimecard(timecard); + } + + [WebMethod] + public void DeleteTimecard(long timecardId) + { + Service.DeleteTimecard(timecardId); + } + } 1.3 +40 -2 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/App_Code/DataSourceUtils.cs Index: DataSourceUtils.cs =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/App_Code/DataSourceUtils.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- DataSourceUtils.cs 29 Aug 2006 05:02:07 -0000 1.2 +++ DataSourceUtils.cs 31 Aug 2006 23:37:46 -0000 1.3 @@ -9,6 +9,7 @@ using System.Web.UI.HtmlControls; using TimeTrackingService; +using Northwind.TimeTracker.Web.Common; /// <summary> /// Summary description for DataSourceUtils @@ -19,9 +20,46 @@ { } - public static MembershipUserCollection GetAllUsers() + public class TimeTrackerUser { - return Membership.GetAllUsers(); + private string m_fullName; + private string m_username; + private long m_id; + + public long Id + { + get { return m_id; } + set { m_id = value; } + } + + public string Username + { + get { return m_username; } + set { m_username = value; } + } + + public string FullName + { + get { return m_fullName; } + set { m_fullName = value; } + } + } + + + public static TimeTrackerUser[] GetAllUsers() + { + MembershipUserCollection membershipUsers = Membership.GetAllUsers(); + TimeTrackerUser[] users = new TimeTrackerUser[membershipUsers.Count]; + int i = 0; + foreach(DomainMembershipUser user in membershipUsers) + { + users[i] = new TimeTrackerUser(); + users[i].FullName = user.UserVO.FirstName + " " + user.UserVO.LastName; + users[i].Username = user.UserVO.Username; + users[i].Id = user.UserVO.Id; + i++; + } + return users; } public static string[] GetAllStatuses() 1.2 +3 -3 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/App_WebReferences/TimeTrackingService/TimeTrackingService.disco Index: TimeTrackingService.disco =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/App_WebReferences/TimeTrackingService/TimeTrackingService.disco,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- TimeTrackingService.disco 28 Aug 2006 04:22:20 -0000 1.1 +++ TimeTrackingService.disco 31 Aug 2006 23:37:46 -0000 1.2 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/"> - <contractRef ref="http://localhost:4773/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx?wsdl" docRef="http://localhost:4773/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" /> - <soap address="http://localhost:4773/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx" xmlns:q1="http://tempuri.org/" binding="q1:TimeTrackingServiceSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" /> - <soap address="http://localhost:4773/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx" xmlns:q2="http://tempuri.org/" binding="q2:TimeTrackingServiceSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" /> + <contractRef ref="http://localhost:3784/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx?wsdl" docRef="http://localhost:3784/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" /> + <soap address="http://localhost:3784/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx" xmlns:q1="http://tempuri.org/" binding="q1:TimeTrackingServiceSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" /> + <soap address="http://localhost:3784/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx" xmlns:q2="http://tempuri.org/" binding="q2:TimeTrackingServiceSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" /> </discovery> \ No newline at end of file 1.2 +2 -2 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/App_WebReferences/TimeTrackingService/TimeTrackingService.discomap Index: TimeTrackingService.discomap =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/App_WebReferences/TimeTrackingService/TimeTrackingService.discomap,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- TimeTrackingService.discomap 28 Aug 2006 04:22:20 -0000 1.1 +++ TimeTrackingService.discomap 31 Aug 2006 23:37:46 -0000 1.2 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Results> - <DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://localhost:4773/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx?disco" filename="TimeTrackingService.disco" /> - <DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://localhost:4773/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx?wsdl" filename="TimeTrackingService.wsdl" /> + <DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://localhost:3784/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx?disco" filename="TimeTrackingService.disco" /> + <DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://localhost:3784/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx?wsdl" filename="TimeTrackingService.wsdl" /> </Results> </DiscoveryClientResultsFile> \ No newline at end of file 1.3 +124 -2 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/App_WebReferences/TimeTrackingService/TimeTrackingService.wsdl Index: TimeTrackingService.wsdl =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/App_WebReferences/TimeTrackingService/TimeTrackingService.wsdl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- TimeTrackingService.wsdl 29 Aug 2006 05:02:07 -0000 1.2 +++ TimeTrackingService.wsdl 31 Aug 2006 23:37:46 -0000 1.3 @@ -115,6 +115,44 @@ <s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" /> </s:sequence> </s:complexType> + <s:element name="SaveTimecard"> + <s:complexType> + <s:sequence> + <s:element minOccurs="0" maxOccurs="1" name="timecard" type="tns:TimecardVO" /> + </s:sequence> + </s:complexType> + </s:element> + <s:element name="SaveTimecardResponse"> + <s:complexType> + <s:sequence> + <s:element minOccurs="1" maxOccurs="1" name="SaveTimecardResult" type="s:long" /> + </s:sequence> + </s:complexType> + </s:element> + <s:element name="SubmitTimecard"> + <s:complexType> + <s:sequence> + <s:element minOccurs="0" maxOccurs="1" name="timecard" type="tns:TimecardVO" /> + </s:sequence> + </s:complexType> + </s:element> + <s:element name="SubmitTimecardResponse"> + <s:complexType> + <s:sequence> + <s:element minOccurs="1" maxOccurs="1" name="SubmitTimecardResult" type="s:long" /> + </s:sequence> + </s:complexType> + </s:element> + <s:element name="DeleteTimecard"> + <s:complexType> + <s:sequence> + <s:element minOccurs="1" maxOccurs="1" name="timecardId" type="s:long" /> + </s:sequence> + </s:complexType> + </s:element> + <s:element name="DeleteTimecardResponse"> + <s:complexType /> + </s:element> </s:schema> </wsdl:types> <wsdl:message name="FindTimecardsSoapIn"> @@ -135,6 +173,24 @@ <wsdl:message name="GetAllTasksSoapOut"> <wsdl:part name="parameters" element="tns:GetAllTasksResponse" /> </wsdl:message> + <wsdl:message name="SaveTimecardSoapIn"> + <wsdl:part name="parameters" element="tns:SaveTimecard" /> + </wsdl:message> + <wsdl:message name="SaveTimecardSoapOut"> + <wsdl:part name="parameters" element="tns:SaveTimecardResponse" /> + </wsdl:message> + <wsdl:message name="SubmitTimecardSoapIn"> + <wsdl:part name="parameters" element="tns:SubmitTimecard" /> + </wsdl:message> + <wsdl:message name="SubmitTimecardSoapOut"> + <wsdl:part name="parameters" element="tns:SubmitTimecardResponse" /> + </wsdl:message> + <wsdl:message name="DeleteTimecardSoapIn"> + <wsdl:part name="parameters" element="tns:DeleteTimecard" /> + </wsdl:message> + <wsdl:message name="DeleteTimecardSoapOut"> + <wsdl:part name="parameters" element="tns:DeleteTimecardResponse" /> + </wsdl:message> <wsdl:portType name="TimeTrackingServiceSoap"> <wsdl:operation name="FindTimecards"> <wsdl:input message="tns:FindTimecardsSoapIn" /> @@ -148,6 +204,18 @@ <wsdl:input message="tns:GetAllTasksSoapIn" /> <wsdl:output message="tns:GetAllTasksSoapOut" /> </wsdl:operation> + <wsdl:operation name="SaveTimecard"> + <wsdl:input message="tns:SaveTimecardSoapIn" /> + <wsdl:output message="tns:SaveTimecardSoapOut" /> + </wsdl:operation> + <wsdl:operation name="SubmitTimecard"> + <wsdl:input message="tns:SubmitTimecardSoapIn" /> + <wsdl:output message="tns:SubmitTimecardSoapOut" /> + </wsdl:operation> + <wsdl:operation name="DeleteTimecard"> + <wsdl:input message="tns:DeleteTimecardSoapIn" /> + <wsdl:output message="tns:DeleteTimecardSoapOut" /> + </wsdl:operation> </wsdl:portType> <wsdl:binding name="TimeTrackingServiceSoap" type="tns:TimeTrackingServiceSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" /> @@ -178,6 +246,33 @@ <soap:body use="literal" /> </wsdl:output> </wsdl:operation> + <wsdl:operation name="SaveTimecard"> + <soap:operation soapAction="http://tempuri.org/SaveTimecard" style="document" /> + <wsdl:input> + <soap:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="SubmitTimecard"> + <soap:operation soapAction="http://tempuri.org/SubmitTimecard" style="document" /> + <wsdl:input> + <soap:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="DeleteTimecard"> + <soap:operation soapAction="http://tempuri.org/DeleteTimecard" style="document" /> + <wsdl:input> + <soap:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap:body use="literal" /> + </wsdl:output> + </wsdl:operation> </wsdl:binding> <wsdl:binding name="TimeTrackingServiceSoap12" type="tns:TimeTrackingServiceSoap"> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" /> @@ -208,13 +303,40 @@ <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> + <wsdl:operation name="SaveTimecard"> + <soap12:operation soapAction="http://tempuri.org/SaveTimecard" style="document" /> + <wsdl:input> + <soap12:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap12:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="SubmitTimecard"> + <soap12:operation soapAction="http://tempuri.org/SubmitTimecard" style="document" /> + <wsdl:input> + <soap12:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap12:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="DeleteTimecard"> + <soap12:operation soapAction="http://tempuri.org/DeleteTimecard" style="document" /> + <wsdl:input> + <soap12:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap12:body use="literal" /> + </wsdl:output> + </wsdl:operation> </wsdl:binding> <wsdl:service name="TimeTrackingService"> <wsdl:port name="TimeTrackingServiceSoap" binding="tns:TimeTrackingServiceSoap"> - <soap:address location="http://localhost:4773/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx" /> + <soap:address location="http://localhost:3784/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx" /> </wsdl:port> <wsdl:port name="TimeTrackingServiceSoap12" binding="tns:TimeTrackingServiceSoap12"> - <soap12:address location="http://localhost:4773/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx" /> + <soap12:address location="http://localhost:3784/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx" /> </wsdl:port> </wsdl:service> </wsdl:definitions> \ No newline at end of file 1.3 +14 -7 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/NewTimecardSetup.aspx Index: NewTimecardSetup.aspx =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/NewTimecardSetup.aspx,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- NewTimecardSetup.aspx 29 Aug 2006 04:01:18 -0000 1.2 +++ NewTimecardSetup.aspx 31 Aug 2006 23:37:47 -0000 1.3 @@ -1,13 +1,12 @@ -<%@ Page Language="C#" MasterPageFile="~/Layout/Default.master" AutoEventWireup="true" CodeFile="NewTimecardSetup.aspx.cs" Inherits="NewTimecardSetup" Title="Untitled Page" %> +<%@ Page Language="C#" MasterPageFile="~/Layout/Default.master" AutoEventWireup="true" CodeFile="NewTimecardSetup.aspx.cs" Inherits="NewTimecardSetup" Title="New Timecard Setup" %> + +<%@ Register Assembly="RJS.Web.WebControl.PopCalendar" Namespace="RJS.Web.WebControl" + TagPrefix="rjs" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <div class="menubar"> <ul> - <li><a class="selected" href="Home.aspx">Home</a></li> - <li class="first"><a href="TimecardDetails.aspx">Timecard Details</a></li> - <li><a href="SearchTimecards.aspx">Search Timecards</a></li> - <li><a href="ApproveTimecards.aspx">Approve Timecards</a></li> - </ul> + <li><a class="selected" href="Home.aspx">Home</a></li><li class="first"><a href="TimecardDetails.aspx">Timecard Details</a></li><li><a href="SearchTimecards.aspx">Search Timecards</a></li><li><a href="ApproveTimecards.aspx">Approve Timecards</a></li></ul> </div> <div class="content"> @@ -16,8 +15,16 @@ <div class="fieldgroup"> <asp:Label runat="server" ID="lblStartDate" AssociatedControlID="txtStartDate" Text="Start Date" /> <asp:TextBox ID="txtStartDate" runat="server" /> + + + <rjs:popcalendar id="PopCalendar1" runat="server" control="txtStartDate" format="mm dd yyyy" + from-date="2006-07-31" requireddate="True" selectweekend="False" separator="/" + shadow="True" showweeknumber="True" to-date="2050-12-31" weekend="Tuesday" weekenddays="6" Visible="true"></rjs:popcalendar> + <rjs:popcalendarmessagecontainer id="PopCalendarMessageContainer1" runat="server" Calendar="PopCalendar1"></rjs:popcalendarmessagecontainer> + + <br /><br /> - <asp:LinkButton ID="btnNewTimecard" runat="server" CssClass="button" Text="Create New Timecard" /> + <asp:LinkButton ID="btnNewTimecard" runat="server" CssClass="button" Text="Create New Timecard" OnClick="btnNewTimecard_Click" /> </div> </div> 1.2 +9 -0 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/NewTimecardSetup.aspx.cs Index: NewTimecardSetup.aspx.cs =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/NewTimecardSetup.aspx.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- NewTimecardSetup.aspx.cs 28 Aug 2006 04:22:21 -0000 1.1 +++ NewTimecardSetup.aspx.cs 31 Aug 2006 23:37:47 -0000 1.2 @@ -15,4 +15,13 @@ { } + + protected void btnNewTimecard_Click(object sender, EventArgs e) + { + Response.Redirect("TimecardDetails.aspx?StartDate=" + txtStartDate.Text); + } + protected void PopCalendar1_SelectionChanged(object sender, EventArgs e) + { + txtStartDate.Text = PopCalendar1.DateValue.ToString("d"); + } } 1.6 +11 -7 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/SearchTimecards.aspx Index: SearchTimecards.aspx =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/SearchTimecards.aspx,v retrieving revision 1.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- SearchTimecards.aspx 29 Aug 2006 15:53:37 -0000 1.5 +++ SearchTimecards.aspx 31 Aug 2006 23:37:47 -0000 1.6 @@ -1,4 +1,6 @@ <%@ Page Language="C#" MasterPageFile="~/Layout/Default.master" AutoEventWireup="true" CodeFile="SearchTimecards.aspx.cs" Inherits="SearchTimecards" Title="Search Timecards" %> +<%@ Register Assembly="RJS.Web.WebControl.PopCalendar" Namespace="RJS.Web.WebControl" + TagPrefix="rjs" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <asp:ObjectDataSource @@ -39,12 +41,12 @@ <h2>Search Criteria</h2> <h3>Submitter</h3> - <asp:DropDownList ID="ddlSubmitter" runat="server" DataSourceID="AllUsersDataSource" DataTextField="UserName" DataValueField="ProviderUserKey" AppendDataBoundItems="true"> + <asp:DropDownList ID="ddlSubmitter" runat="server" DataSourceID="AllUsersDataSource" DataTextField="FullName" DataValueField="Id" AppendDataBoundItems="true"> <asp:ListItem Text="-- All --" Value=""/> </asp:DropDownList> <h3>Approver</h3> - <asp:DropDownList ID="ddlApprover" runat="server" DataSourceID="AllUsersDataSource" DataTextField="UserName" DataValueField="ProviderUserKey" AppendDataBoundItems="true"> + <asp:DropDownList ID="ddlApprover" runat="server" DataSourceID="AllUsersDataSource" DataTextField="FullName" DataValueField="Id" AppendDataBoundItems="true"> <asp:ListItem Text="-- All --" Value=""/> </asp:DropDownList> @@ -56,13 +58,15 @@ <br /><br /> <h3>Start Date Minimum</h3> <asp:TextBox ID="txtStartDateMin" runat="server" /> - <asp:RegularExpressionValidator ID="reqStartDateMin" runat="server" - ValidationExpression="\d\d?/\d\d?/\d\d\d\d" ControlToValidate="txtStartDateMin" CssClass="tinytext"><br />Must be MM/DD/YYY format</asp:RegularExpressionValidator> + + <rjs:popcalendar id="PopCalendar1" runat="server" Visible="true" weekenddays="6" weekend="Tuesday" to-date="2050-12-31" showweeknumber="True" shadow="True" separator="/" selectweekend="False" requireddate="False" from-date="2006-01-01" format="mm dd yyyy" control="txtStartDateMin"></rjs:popcalendar><br /> + <rjs:popcalendarmessagecontainer id="PopCalendarMessageContainer1" runat="server" Calendar="PopCalendar1"></rjs:popcalendarmessagecontainer> <h3>Start Date Maximum</h3> <asp:TextBox ID="txtStartDateMax" runat="server" /> - <asp:RegularExpressionValidator ID="reqStartDateMax" runat="server" - ValidationExpression="\d\d?/\d\d?/\d\d\d\d" ControlToValidate="txtStartDateMax" CssClass="tinytext"><br />Must be MM/DD/YYY format</asp:RegularExpressionValidator> + + <rjs:popcalendar id="PopCalendar2" runat="server" Visible="true" weekenddays="6" weekend="Tuesday" to-date="2050-12-31" showweeknumber="True" shadow="True" separator="/" selectweekend="False" requireddate="False" from-date="2006-01-01" format="mm dd yyyy" control="txtStartDateMax"></rjs:popcalendar><br /> + <rjs:popcalendarmessagecontainer id="PopCalendarMessageContainer2" runat="server" Calendar="PopCalendar2"></rjs:popcalendarmessagecontainer> <br /><br /> <asp:LinkButton runat="server" ID="btnSearch" Text="Search" CssClass="button" OnClick="btnSearch_Click" /> 1.4 +48 -22 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/TimecardDetails.aspx Index: TimecardDetails.aspx =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/TimecardDetails.aspx,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- TimecardDetails.aspx 29 Aug 2006 05:02:08 -0000 1.3 +++ TimecardDetails.aspx 31 Aug 2006 23:37:47 -0000 1.4 @@ -15,6 +15,8 @@ TypeName="DataSourceUtils"> </asp:ObjectDataSource> + <asp:HiddenField id="hdnTimecardId" runat="server" /> + <div class="menubar"> <ul> <li class="first"> @@ -48,9 +50,10 @@ <tr> <td><asp:Label ID="lblSubmitter" runat="server" /></td> <td> - <asp:DropDownList ID="ddlApprover" runat="server" DataSourceID="AllUsersDataSource" DataTextField="UserName" DataValueField="ProviderUserKey" AppendDataBoundItems="true"> + <asp:DropDownList ID="ddlApprover" runat="server" DataSourceID="AllUsersDataSource" DataTextField="FullName" DataValueField="Username" AppendDataBoundItems="true"> <asp:ListItem Text="-- Select --" Value=""/> </asp:DropDownList> + <asp:RequiredFieldValidator ID="reqApprover" runat="server" ControlToValidate="ddlApprover">*</asp:RequiredFieldValidator> </td> <td><asp:Label ID="lblStatus" runat="server" /></td> <td><asp:Label ID="lblStartDate" runat="server" /></td> @@ -59,6 +62,9 @@ </asp:Panel> <div class="timecard"> + + <asp:Repeater ID="rptAllocations" runat="server" > + <HeaderTemplate> <table class="full_width"> <colgroup span="4" style="width:22%;" /> <colgroup span="1" style="width:12%;" /> @@ -69,13 +75,32 @@ <th>End</th> <th>Task</th> - <th class="align_center"><a class="button" href="">Delete</a></th> + <th class="align_center"> + <asp:LinkButton ID="btnDeleteAllocation" runat="server" CssClass="button" Text="Delete" OnClick="btnDeleteAllocation_Click"/> + </th> </tr> </thead> <tbody> + </HeaderTemplate> + + <FooterTemplate> </tbody> </table> + </FooterTemplate> + + <ItemTemplate> + + <tr> + <td><%# ((DateTime)Eval("TimePeriodVO.StartTime")).ToString("d") %></td> + <td><%# ((DateTime)Eval("TimePeriodVO.StartTime")).ToString("t") %></td> + <td><%# ((DateTime)Eval("TimePeriodVO.EndTime")).ToString("t") %></td> + <td><%# ddlTasks.Items.FindByValue(Eval("TaskId").ToString()) %></td> + <td><center><asp:CheckBox ID="cbDelete" runat="server" /></center></td> + </tr> + </ItemTemplate> + </asp:Repeater> + <table class="add_allocation_table bordered_table full_width"> <colgroup span="4" style="width:22%;" /> @@ -83,28 +108,30 @@ <tbody> <tr> <td> - <select name="date"> - - <option value="0" selected="">06/05/2006</option> - <option value="1">06/06/2006</option> - <option value="2">06/07/2006</option> - <option value="3">06/08/2006</option> - <option value="4">06/09/2006</option> - <option value="5">06/10/2006</option> - - <option value="6">06/11/2006</option> - </select> + <asp:DropDownList ID="ddlDate" runat="server"> + </asp:DropDownList> + </td> + <td> + <asp:TextBox ID="txtStartTime" runat="server" Columns="7" /> + <asp:RequiredFieldValidator ID="reqStartTime" runat="server" ControlToValidate="txtStartTime" ValidationGroup="Add">*</asp:RequiredFieldValidator> + <asp:RegularExpressionValidator ID="reqStartTimeFmt" runat="server" ControlToValidate="txtStartTime" ValidationGroup="Add" ValidationExpression="\d\d?:\d\d A?P?M?">*</asp:RegularExpressionValidator> + </td> + <td> + <asp:TextBox ID="txtEndTime" runat="server" Columns="7" /> + <asp:RequiredFieldValidator ID="reqEndTime" runat="server" ControlToValidate="txtEndTime" ValidationGroup="Add">*</asp:RequiredFieldValidator> + <asp:RegularExpressionValidator ID="reqEndTimeFmt" runat="server" ControlToValidate="txtEndTime" ValidationGroup="Add" ValidationExpression="\d\d?:\d\d A?P?M?">*</asp:RegularExpressionValidator> </td> - <td><input type="text" id="start" size="7" /></td> - <td><input type="text" id="end" size="7" /></td> <td> <asp:DropDownList ID="ddlTasks" runat="server" DataSourceID="AllTasksDataSource" DataTextField="Name" DataValueField="Id" AppendDataBoundItems="true"> <asp:ListItem Text="-- Select --" Value=""/> </asp:DropDownList> + <asp:RequiredFieldValidator ID="reqTasks" runat="server" ControlToValidate="ddlTasks" ValidationGroup="Add">*</asp:RequiredFieldValidator> </td> - <td class="align_center"><a class="button" href="">Add</a></td> + <td class="align_center"> + <asp:LinkButton ValidationGroup="Add" ID="btnAdd" runat="server" CssClass="button" Text="Add" OnClick="btnAdd_Click"/> + </td> </tr> </tbody> @@ -118,11 +145,10 @@ <div> <asp:LinkButton runat="server" ID="btnSave" Text="Save" CssClass="button" OnClick="btnSave_Click" /> - <asp:LinkButton runat="server" ID="btnDelete" Text="Delete" CssClass="button" OnClick="btnDelete_Click" /> + <asp:LinkButton runat="server" ID="btnDelete" Text="Delete" CssClass="button" OnClick="btnDelete_Click" ValidationGroup="DeleteTimecard"/> <asp:LinkButton runat="server" ID="btnSubmit" Text="Submit" CssClass="button" OnClick="btnSubmit_Click" /> </div> </div> </asp:Content> - 1.3 +149 -2 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/TimecardDetails.aspx.cs Index: TimecardDetails.aspx.cs =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/TimecardDetails.aspx.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- TimecardDetails.aspx.cs 29 Aug 2006 05:02:08 -0000 1.2 +++ TimecardDetails.aspx.cs 31 Aug 2006 23:37:47 -0000 1.3 @@ -10,19 +10,61 @@ using System.Web.UI.HtmlControls; using TimeTrackingService; +using Northwind.TimeTracker.Web.Common; public partial class TimecardDetails : System.Web.UI.Page { + + protected ArrayList Allocations + { + get + { + if (ViewState["Allocations"] == null) + { + ViewState["Allocations"] = new ArrayList(); + } + return (ArrayList)ViewState["Allocations"]; + } + set + { + ViewState["Allocations"] = value; + } + } + protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["TimecardId"] != null) { + // We are displaying an existing timecard + long timecardId = long.Parse(Request.QueryString["TimecardId"]); LoadTimecard(timecardId); } + else if (Request.QueryString["StartDate"] != null) + { + // We are creating a new timecard + InitNewTimecard(DateTime.Parse(Request.QueryString["StartDate"])); + } + } } + + protected void InitNewTimecard(DateTime startDate) + { + Northwind.TimeTracker.VO.UserVO user = ((DomainMembershipUser)Membership.GetUser()).UserVO; + lblSubmitter.Text = user.FirstName + " " + user.LastName; + lblStartDate.Text = startDate.ToString("d"); + lblStatus.Text = "New"; + BuildStartDateDropdown(startDate); + + hdnTimecardId.Value = "0"; + + btnDelete.Enabled = false; + btnDelete.CssClass = "disabledbutton"; + + rptAllocations.DataSource = Allocations; + rptAllocations.DataBind(); } protected void LoadTimecard(long timecardId) @@ -30,24 +72,129 @@ TimeTrackingService.TimeTrackingService service = new TimeTrackingService.TimeTrackingService(); TimeTrackingService.TimecardVO timecard = service.GetTimecard(timecardId); + ddlTasks.DataBind(); + ddlApprover.DataBind(); + lblSubmitter.Text = timecard.SubmitterName; + this.Title = timecard.ApproverName; + ListItem approverItem = ddlApprover.Items.FindByText(timecard.ApproverName); + if (approverItem != null) + { + approverItem.Selected = true; + } + lblStatus.Text = timecard.Status.ToString(); lblStartDate.Text = timecard.StartDate.Value.ToString("d"); txtComments.Text = timecard.Comments; + hdnTimecardId.Value = timecard.Id.ToString(); + + BuildStartDateDropdown(timecard.StartDate.Value); + + foreach (TimeAllocationVO allocation in timecard.Allocations) + { + Allocations.Add(allocation); } + rptAllocations.DataSource = Allocations; + rptAllocations.DataBind(); - protected void btnSave_Click(object sender, EventArgs e) + + } + + protected void BuildStartDateDropdown(DateTime startDate) + { + DateTime date = new DateTime(startDate.Year, startDate.Month, startDate.Day); + for(int i = 0; i<7; i++) + { + ddlDate.Items.Add(new ListItem(date.ToString("d"), i.ToString())); + date = date.AddDays(1); + } + } + + protected TimecardVO GetTimecardVOFromForm() { + TimecardVO timecard = new TimecardVO(); + timecard.Id = long.Parse(hdnTimecardId.Value); + timecard.Allocations = new TimeAllocationVO[Allocations.Count]; + Allocations.CopyTo(timecard.Allocations); + timecard.Comments = txtComments.Text; + timecard.SubmitterName = User.Identity.Name; + timecard.ApproverName = ddlApprover.SelectedItem.Value; + timecard.StartDate = DateTime.Parse(lblStartDate.Text); + return timecard; + } + protected void btnSave_Click(object sender, EventArgs e) + { + TimeTrackingService.TimeTrackingService service = new TimeTrackingService.TimeTrackingService(); + TimecardVO timecard = GetTimecardVOFromForm(); + timecard.Status = TimecardStatus.Draft; + long timecardId = service.SaveTimecard(timecard); + Response.Redirect("TimecardDetails.aspx?TimecardId=" + timecardId.ToString()); } + protected void btnDelete_Click(object sender, EventArgs e) { - + TimeTrackingService.TimeTrackingService service = new TimeTrackingService.TimeTrackingService(); + service.DeleteTimecard(long.Parse(hdnTimecardId.Value)); + Response.Redirect("Home.aspx"); } + protected void btnSubmit_Click(object sender, EventArgs e) { + TimeTrackingService.TimeTrackingService service = new TimeTrackingService.TimeTrackingService(); + TimecardVO timecard = GetTimecardVOFromForm(); + timecard.Status = TimecardStatus.Submitted; + long timecardId = service.SubmitTimecard(timecard); + Response.Redirect("TimecardDetails.aspx?TimecardId=" + timecardId.ToString()); + } + + protected void btnAdd_Click(object sender, EventArgs e) + { + TimeAllocationVO allocation = new TimeAllocationVO(); + allocation.TimePeriodVO = new TimePeriodVO(); + allocation.TaskId = long.Parse(ddlTasks.SelectedValue); + + txtStartTime.Text = txtStartTime.Text.Trim().ToUpper(); + if (txtStartTime.Text.EndsWith("A") || txtStartTime.Text.EndsWith("P")) txtStartTime.Text += "M"; + txtEndTime.Text = txtEndTime.Text.Trim().ToUpper(); + if (txtEndTime.Text.EndsWith("A") || txtEndTime.Text.EndsWith("P")) txtEndTime.Text += "M"; + + try + { + string startDate = ddlDate.SelectedItem.Text + " " + txtStartTime.Text; + string endDate = ddlDate.SelectedItem.Text + " " + txtEndTime.Text; + + allocation.TimePeriodVO.StartTime = DateTime.Parse(startDate); + allocation.TimePeriodVO.EndTime = DateTime.Parse(endDate); + + Allocations.Add(allocation); + } + catch { } + + rptAllocations.DataSource = Allocations; + rptAllocations.DataBind(); + } + + protected void btnDeleteAllocation_Click(object source, EventArgs e) + { + int i = 0; + foreach (RepeaterItem item in rptAllocations.Items) + { + CheckBox cbDelete = (CheckBox)item.FindControl("cbDelete"); + if (cbDelete.Checked) + { + Allocations.RemoveAt(i); + } + else + { + i++; + } + } + rptAllocations.DataSource = Allocations; + rptAllocations.DataBind(); } + } 1.3 +4 -2 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/Web.config Index: Web.config =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/Web.config,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- Web.config 29 Aug 2006 02:39:34 -0000 1.2 +++ Web.config 31 Aug 2006 23:37:47 -0000 1.3 @@ -10,7 +10,7 @@ <configuration> <appSettings> <add key="nhibernate.config" value="~/nhibernate.config"/> - <add key="TimeTrackingService.TimeTrackingService" value="http://localhost:4773/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx"/> + <add key="TimeTrackingService.TimeTrackingService" value="http://localhost:3784/Northwind.TimeTracker.WebServices/TimeTrackingService.asmx"/> </appSettings> <connectionStrings/> <system.web> @@ -32,7 +32,9 @@ </providers> </roleManager> <compilation debug="true"> - </compilation> + <assemblies> + <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> + <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies></compilation> <!-- The <authentication> section enables configuration of the security authentication mode used by 1.3 +14 -0 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/Style/global.css Index: global.css =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.Web/Style/global.css,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- global.css 29 Aug 2006 15:53:38 -0000 1.2 +++ global.css 31 Aug 2006 23:37:47 -0000 1.3 @@ -15,6 +15,8 @@ color: #DD6900; } + + a.button:link, a.button:visited, a.button:hover { padding: 2px 4px 2px 4px; @@ -27,6 +29,18 @@ font-weight: bold; } +a.disabledbutton, a.disabledbutton:link, a.disabledbutton:visited, a.disabledbutton:hover +{ + padding: 2px 4px 2px 4px; + border: outset 2px #dddddd; + background-color: #dddddd; + text-decoration: none; + text-align: center; + color: #888888; + font-size: 0.8em; + font-weight: bold; +} + .tinytext { font-size: 0.7em; 1.2 +2 -2 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.sln Index: Northwind.TimeTracker.sln =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/Northwind.TimeTracker.sln,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- Northwind.TimeTracker.sln 28 Aug 2006 04:22:24 -0000 1.1 +++ Northwind.TimeTracker.sln 31 Aug 2006 23:37:47 -0000 1.2 @@ -19,7 +19,7 @@ Release.AspNetCompiler.ForceOverwrite = "true" Release.AspNetCompiler.FixedNames = "false" Release.AspNetCompiler.Debug = "False" - VWDPort = "3896" + VWDPort = "3781" DefaultWebSiteLanguage = "Visual C#" EndProjectSection EndProject @@ -40,7 +40,7 @@ Release.AspNetCompiler.ForceOverwrite = "true" Release.AspNetCompiler.FixedNames = "false" Release.AspNetCompiler.Debug = "False" - VWDPort = "4773" + VWDPort = "3784" EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Northwind.TimeTracker.Web.Common", "Northwind.TimeTracker.Web.Common\Northwind.TimeTracker.Web.Common.csproj", "{7FE008D6-9835-45B8-B130-6587CC4B6379}" 1.5 +463 -354 plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/mda/src/uml/Northwind.TimeTracker.Model.xmi Index: Northwind.TimeTracker.Model.xmi =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/documentation/samples/time-tracker-dotnet-maven2/Northwind.TimeTracker/mda/src/uml/Northwind.TimeTracker.Model.xmi,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- Northwind.TimeTracker.Model.xmi 29 Aug 2006 05:02:08 -0000 1.4 +++ Northwind.TimeTracker.Model.xmi 31 Aug 2006 23:37:47 -0000 1.5 @@ -3,7 +3,7 @@ <!-- This xmi file is optimized for MagicDraw UML. Some references are not saved. --> <!-- Change MagicDraw UML environment options property General->.Save Rich XMI --> -<XMI xmi.version='1.2' timestamp='Tue Aug 29 00:48:53 EDT 2006' xmlns:UML='omg.org/UML/1.4'> +<XMI xmi.version='1.2' timestamp='Thu Aug 31 19:03:00 EDT 2006' xmlns:UML='omg.org/UML/1.4'> <XMI.header> <XMI.documentation> <XMI.exporter>MagicDraw UML</XMI.exporter> @@ -75,6 +75,56 @@ <UML:Parameter xmi.id='_9_5_1_874026a_1156826449914_918676_364' kind='return' type='_9_5_1_874026a_1156376533391_931343_959'/> </UML:BehavioralFeature.parameter> </UML:Operation> + <UML:Operation xmi.id='_9_5_1_874026a_1157054617912_364872_468' name='SaveTimecard' visibility='public'> + <UML:BehavioralFeature.parameter> + <UML:Parameter xmi.id='_9_5_1_874026a_1157054627456_860851_470' name='timecard' type='_9_5_1_874026a_1156376533381_936385_939'/> + <UML:Parameter xmi.id='_9_5_1_874026a_1157054627456_794156_471' kind='return'> + <UML:Parameter.type> + <UML:Classifier href='andromda-profile-datatype-3.2-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_238790_9'> + <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> + <referentPath xmi.value='datatype::long'/> + </XMI.extension> + </UML:Classifier> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + </UML:Operation> + <UML:Operation xmi.id='_9_5_1_874026a_1157054627546_357319_473' name='SubmitTimecard' visibility='public'> + <UML:BehavioralFeature.parameter> + <UML:Parameter xmi.id='_9_5_1_874026a_1157054656818_384841_475' name='timecard' type='_9_5_1_874026a_1156376533381_936385_939'/> + <UML:Parameter xmi.i... [truncated message content] |