Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
7a065ec
Added project strucutre, and google oath.
altostratous Jun 5, 2016
5d8c86b
Now gets calendars from google.
altostratous Jun 6, 2016
ba0af13
Minimal Google demo.
altostratous Jun 6, 2016
359dabc
Changed project structure.
altostratous Jun 6, 2016
fe66d7d
Removed unnassary interfaces had been added.
altostratous Jun 6, 2016
f320458
Work done on demo ui
altostratous Jun 6, 2016
a50a0b8
Changed config for requests to adapt yahoo.
altostratous Jun 6, 2016
6fa0f36
Corrected finding calendars request.
altostratous Jun 7, 2016
a700dd1
Project structure corrected to a version having compability with othe…
altostratous Jun 13, 2016
9e3d77e
Completed Interfaces in API
altostratous Jun 13, 2016
ccd188d
Completed Alarm and Server interfaces.
altostratous Jun 13, 2016
90cab0a
Added Calendar interface.
altostratous Jun 13, 2016
a003cb3
Completed interfaces and their already implementations.
altostratous Jun 13, 2016
0702b7c
Added outlook client structure.
altostratous Jun 13, 2016
7845f50
Added outlook oauth but Microsof bull shit is appearing.
altostratous Jun 13, 2016
0e4466b
Added test snippet for adding Item to outlook calendar.
altostratous Jul 16, 2016
16c167f
Finally Adapted the app to icloud.
altostratous Jul 17, 2016
486cce0
ToDos can be added and updated.
altostratous Jul 17, 2016
067a553
Partially implemented outlook.
altostratous Jul 17, 2016
b61f0ce
Now outlook works.
altostratous Jul 17, 2016
95759bb
Implemented preset autoconfig.
altostratous Jul 17, 2016
d4a8ff6
Create README.md
altostratous Oct 26, 2017
0a22055
Update README.md
altostratous Oct 26, 2017
38a7b84
Ensure the reading of an alarm does not eat the exception events in a…
May 22, 2018
1226400
Add additional date handling. Zimbra sends dates in the yyyyMMdd format.
May 22, 2018
1d730da
Fix whitespace.
May 22, 2018
7f044ad
Fix whitespace.
May 29, 2018
7cabd0b
More whitespace fixes.
May 29, 2018
cc7f548
Merge pull request #1 from BrantOlsen/master
altostratous May 29, 2018
0f63b5e
Use correct All Day iCal Syntax
Nov 21, 2020
8a4231e
Added Delete Event Functionality
Nov 21, 2020
5df368a
Allow \n in Property
Nov 22, 2020
e274ae6
Build & Upgrade .Net Versions (.NET 4.8)
alireza-es Sep 26, 2021
e9678d3
Cleaning
alireza-es Oct 16, 2021
2d01604
Add HomeController
alireza-es Oct 17, 2021
29d6f86
Build with VS community 2019
altostratous Oct 18, 2021
1e8a92b
Remove MVC demo
altostratous Oct 18, 2021
b041006
Merge pull request #3 from pfz4/add-delete-event
altostratous Oct 18, 2021
8909d20
Merge pull request #4 from pfz4/all-day-event-syntax
altostratous Oct 18, 2021
814a49c
Merge pull request #5 from pfz4/allow-new-line-in-property
altostratous Oct 18, 2021
3c18855
Add MVC demo again
altostratous Oct 18, 2021
77d4ac3
Merge branch 'master' into UpgradeDotNetVersion
altostratous Oct 18, 2021
0b805ec
Merge pull request #6 from alireza-es/UpgradeDotNetVersion
altostratous Oct 18, 2021
26fd2b4
Fix MVC build
altostratous Oct 18, 2021
8eb1f40
Fix outlook interop installation issue with using nuget dependenciesy
altostratous Oct 25, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ packages/
*.user
TestResults/
*/App_Data/
*.suo
*.suo
.vs
1,037 changes: 1,037 additions & 0 deletions .vs/CalDav/config/applicationhost.config

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions .vs/VSWorkspaceState.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"ExpandedNodes": [
""
],
"SelectedNode": "\\CalDav.sln (CalDav.sln)",
"PreviewInSolutionExplorer": false
}
Binary file added .vs/slnx.sqlite
Binary file not shown.
174 changes: 174 additions & 0 deletions Backup/Demo.MVC.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>
</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{9164611E-4CAF-4FE1-B707-397CC1D515C0}</ProjectGuid>
<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Demo.MVC</RootNamespace>
<AssemblyName>Demo.MVC</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<MvcBuildViews>false</MvcBuildViews>
<UseIISExpress>true</UseIISExpress>
<IISExpressSSLPort />
<IISExpressAnonymousAuthentication />
<IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode />
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
<RestorePackages>true</RestorePackages>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data.Entity" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Abstractions" />
<Reference Include="System.Web.Routing" />
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="EntityFramework">
<HintPath>..\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
</Reference>
<Reference Include="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Microsoft.AspNet.WebPages.1.0.20105.408\lib\net40\System.Web.Helpers.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Microsoft.AspNet.Mvc.3.0.20105.1\lib\net40\System.Web.Mvc.dll</HintPath>
</Reference>
<Reference Include="System.Web.Providers">
<HintPath>..\packages\Microsoft.AspNet.Providers.Core.1.1\lib\net40\System.Web.Providers.dll</HintPath>
</Reference>
<Reference Include="System.Web.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Microsoft.AspNet.Razor.1.0.20105.408\lib\net40\System.Web.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Microsoft.AspNet.WebPages.1.0.20105.408\lib\net40\System.Web.WebPages.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Deployment, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Microsoft.AspNet.WebPages.1.0.20105.408\lib\net40\System.Web.WebPages.Deployment.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Microsoft.AspNet.WebPages.1.0.20105.408\lib\net40\System.Web.WebPages.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
<Compile Include="Models\Calendar.cs" />
<Compile Include="Models\CalendarRepository.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Global.asax" />
<Content Include="Web.config" />
<Content Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
</Content>
<Content Include="Web.Release.config">
<DependentUpon>Web.config</DependentUpon>
</Content>
<Content Include="Views\Web.config" />
<Content Include="Views\_ViewStart.cshtml" />
<Content Include="Views\Shared\Error.cshtml" />
<Content Include="Views\Shared\_Layout.cshtml" />
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />
<Folder Include="Content\" />
<Folder Include="Controllers\" />
</ItemGroup>
<ItemGroup>
<Content Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CalDav.Server\CalDav.Server.csproj">
<Project>{471ea68f-fb1f-4df8-aac1-31022c7316ab}</Project>
<Name>CalDav.Server</Name>
</ProjectReference>
<ProjectReference Include="..\CalDav\CalDav.csproj">
<Project>{01a4c4cf-5ad1-4324-a391-dc922c84be1c}</Project>
<Name>CalDav</Name>
</ProjectReference>
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>0</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:59780/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target> -->
</Project>
1 change: 1 addition & 0 deletions Backup/Global.asax
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<%@ Application Codebehind="Global.asax.cs" Inherits="Demo.MVC.MvcApplication" Language="C#" %>
38 changes: 38 additions & 0 deletions Backup/Global.asax.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Web.Mvc;
using System.Web.Routing;

namespace Demo.MVC {
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801

public class MvcApplication : System.Web.HttpApplication {
public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
filters.Add(new HandleErrorAttribute());
}

public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
CalDav.Server.Controllers.CalDavController.RegisterRoutes(routes);

routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);


}

protected void Application_Start() {
AreaRegistration.RegisterAllAreas();

// Use LocalDB for Entity Framework by default
Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True");

RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}
}
59 changes: 59 additions & 0 deletions Backup/Models/Calendar.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
using System;
using System.Linq;

namespace CalDav.MVC.Models {
public class CalendarInfo : CalDav.Calendar, CalDav.Server.Models.ICalendarInfo {
public string Filename { get; set; }
public DateTime LastModified {
get {
return System.IO.File.GetLastWriteTimeUtc(Filename);
}
}

private string this[string name] {
get {
name = name.ToUpper();
if (!name.StartsWith("X-")) name = "X-" + name;
var prop = Properties.FirstOrDefault(x => x.Item1.Is(name));
if (prop == null) return null;
return prop.Item2;
}
set {
name = name.ToUpper();
if (!name.StartsWith("X-")) name = "X-" + name;
var newprop = Tuple.Create(name, value, (System.Collections.Specialized.NameValueCollection)null);
var prop = Properties.FirstOrDefault(x => x.Item1.Is(name));
if (prop != null) Properties.Remove(prop);
Properties.Add(newprop);
}
}

public string Name {
get {
return this["Name"];
}
set {
this["Name"] = value;
}
}

public string Description {
get {
return this["Description"];
}
set {
this["Description"] = value;
}
}

public string ID {
get {
return this["ID"];
}
set {
this["ID"] = value;
}
}

}
}
Loading