示例#1
0
        public void Post(Guid roleId, ContactInfo contactInfo)
        {
            var businessAccount = CoreEntitiesContainer.Owner(roleId, new[] { RoleType.Administrator, RoleType.Regular, RoleType.Mobile }).FirstOrDefault();
            if (businessAccount == null)
                throw Request.NotAuthorized();

            var foundOpsContactInfo = ContactInfo.ConvertBack(contactInfo);

            foundOpsContactInfo.CreatedDate = DateTime.UtcNow;
            foundOpsContactInfo.LastModifyingUserId = CoreEntitiesContainer.CurrentUserAccount().Id;

            if (contactInfo.LocationId.HasValue)
            {
                var location = CoreEntitiesContainer.Locations.FirstOrDefault(l => l.Id == contactInfo.LocationId);
                if (location == null)
                    throw Request.BadRequest();

                location.ContactInfoSet.Add(foundOpsContactInfo);
            }
            else if (contactInfo.ClientId.HasValue)
            {
                var client = CoreEntitiesContainer.Clients.FirstOrDefault(c => c.Id == contactInfo.ClientId);
                if (client == null)
                    throw Request.BadRequest();

                client.ContactInfoSet.Add(foundOpsContactInfo);
            }

            SaveWithRetry();
        }
示例#2
0
        public void Put(Guid roleId, ContactInfo contactInfo)
        {
            var businessAccount = CoreEntitiesContainer.Owner(roleId, new[] { RoleType.Administrator, RoleType.Regular, RoleType.Mobile }).FirstOrDefault();
            if (businessAccount == null)
                throw Request.NotAuthorized();

            var original = CoreEntitiesContainer.ContactInfoSet.FirstOrDefault(ci => ci.Id == contactInfo.Id);
            if (original == null)
                throw Request.NotFound();

            original.ClientId = contactInfo.ClientId;
            original.Data = contactInfo.Data;
            original.Label = contactInfo.Label;
            original.LocationId = contactInfo.LocationId;
           
            original.Type = contactInfo.Type;
           
            //TODO CR Make extension method on ITrackable to do this
            original.LastModified = DateTime.UtcNow;
            original.LastModifyingUserId = CoreEntitiesContainer.CurrentUserAccount().Id;

            SaveWithRetry();
        }